考虑日志的处理(业务日志和普通运行中日志)

一,常用的日志工具包括 commons-log   log4j   logback等。

在项目设计需要考虑日志到底记录什么东西,根据日志的设计来采用哪种日志工具。


现有项目由于是SOA的架构,内部服务较多,同时需要分别做分布式部署这样,S需要考虑记录的东西至少应该包括两个:

    1,异常信息

    2,接口调用的参数和结果返回信息


二,记录业务日志

    业务过程中,需要针对特定数据进行记录,比如用户浏览某个页面的次数,频率,这样的数据需要记录下来,供数据挖掘分析。想到的思路比如:

    1,Nginx的IO日志,可以等记录一段时间之后,跑异步进程进行分析。缺点是不能很简单的保存成关系型数据,无法用关系型的分析思路简单的进行处理,拿到的数据也不够直观,好处是数据量大也无所谓,也够简便

    2,业务处理过程中,随时保存数据到关系型数据库,优点是特别容易想到,实现起来简单,分析简单,缺点是数据量大的时候怎么存是问题,数据量大的时候不能用同步来实现(容易卡正常业务),很可能需要诸如MQ,Redis等第三方中间件实现,系统复杂度变大。

    3,NoSQL的非关系型记录,比如MongoDB,量大也不怕渗漏,有成熟的持久化方案。临时来看,貌似没有明显弱点呢。优先考虑之

你可能感兴趣的:(考虑日志的处理(业务日志和普通运行中日志))