我们需要什么样的logger

在生产环境中,针对具体问题的追踪,没有debug,只有利用logger排查问题,这就要求我们打印logger,具体有哪些logger呢?

 

1.摘要日志

   同步service层摘要日志,打印调用服务,入参,执行时间,执行结果

   异步事件接收摘要日志,打印调用服务,入参,执行时间,执行结果

   dal层摘要日志

   intergration摘要日志

   摘要日志,一般由拦截器负责打印,和具体的业务解耦

2.性能日志

   针对系统中某种业务超过时间阀值,则打印出具体的执行步骤和执行时间,从而找到系统的性能瓶颈

   如:operatorA--900ms

            --A1--400ms

               --A11-300ms

               --A12-100ms

            --A2--300ms

            --A3--200ms

3.业务异常日志

   个人观点,凡是有if出现的地方,都需要打印具体的日志(当然要评估出具体的日志量和磁盘空间),以利于日后的问题排查。

   当然每个地方都要求打印业务异常日志,确实会导致工作量比较大,这时可以利用本地线程编程,在第一次进入系统时,生成一个唯一的key(time或者其他,只要保证唯一即可),通过封装,每次打印业务异常日志时,也把key打印出来,这样一个线程的调用,即可用key关联起来。出现问题时,即可用 grep key *log搜出所有线索!

 

4.系统错误日志

   针对由外围系统、db访问层导致的不可预测的错误,需要打印出日志

 

 

技术支持:

摘要日志--AOP技术

性能日志--基于本地线程的ThreadLocal和具体的打点,在每次打点时,写入ThreadLocal,在超出性能阀值时,将ThreadLocal中的打的点打印出。

业务异常日志和系统操作日志--需要一个异常拦截框架,比如

          try{

                do业务();

          }catch(业务自定义RuntimeException e){

               logger.warn("业务异常",e);

          }catch(Exception e){

               logger.warn("系统异常",e);

          }

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值