`
soleghost
  • 浏览: 40809 次
  • 性别: Icon_minigender_1
  • 来自: 未知
社区版块
存档分类
最新评论

我们需要什么样的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);

          }

 

 

 

 

分享到:
评论

相关推荐

    打印日志等异常处理,使用Log4j的配置

    配置根日志:级别:debug #如果一条日志信息的级别大于等于配置文件的级别,就记录配置输出源所对应的辅助类:log4j.appender.输出源名称=类名,如果输出到文件就写...#指定布局方式(消息放入文件之后,怎样布局)

    Log4j日志体系结构

    我们在写日志的时候首先要获取logger,在每一个使用log4j的项目都有很多个地方要获取logger,这些logger是真实的被实例化的Logger对象,他们有可能被分散在无数不同的类中,日志体系结构讲的是这些logger对象是如何...

    thrift example

    thrift server. use client connection pool. singleton conf , async logger and utility classes

    树房子:样板房Koa应用

    树屋Treehouse是一款轻型的基于事件的...为什么选择树屋我们得到了...从头开始构建自己的服务器很有趣。 因此,如果您喜欢使用各种库并将它们拼接在一起,那么该库可能不适合您。 但是,也许您喜欢该库的设置方式,并

    sharpdevelopwebapi:在便携式SharpDevelop中开发ASP.NET Web API应用程序的轻量级坚实起点。 非常适合学生学习和小型项目!

    SimpleLogger 为什么轻巧? 没有欧文 没有ASP.NET身份 Web.config丢失了吗? 只需复制Web.github.config,然后重命名为Web.config 构建错误? 无法解析参考...无法找到程序集...基础连接已关闭... 运行

    tonic:杜松子酒的自以为是的样板

    什么是补品? Tonic是一组帮助程序和预建端点,有助于建立基于Gin的网站/ API。 它主要是为了通过OIDC提供程序使用cookie和承载令牌身份验证来快速设置Web API而设置的。 它可能变得更具可配置性,但现在它只是加快...

    LINUX 与 UNIX SHELL编程指南

    10.1 sed 怎样读取数据 89 10.2 调用 sed 89 10.2.1 保存 sed 输出 90 10.2.2 使用 sed 在文件中查询文本的方式 90 10.2.3 基本 sed 编辑命令 90 10.3 sed 和正则表达式 91 10.4 基本 sed 编程举例 91 10.4.1...

    LINUX与UNIX SHELL编程指南

    sed 用法介绍 89 10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本...

    linux shell 编程教程

    10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本sed编程举例 91 10.4.1 使用p(rint)显示...

    shell 编程指南pdf

    10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本sed编程举例 91 10.4.1 使用p(rint)显示...

    LINUX与UNIX SHELL编程指南(很全)

    10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本sed编程举例 91 10.4.1 使用p(rint)显示...

    linux与unix shell 编程(下)

    10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本sed编程举例 91 10.4.1 使用p(rint)显示...

    LINUX与UNIX SHELL编程指南.rar

    10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本sed编程举例 91 10.4.1 使用p(rint)显示...

    Linux与unix shell编程指南1.rar

    10.1 sed怎样读取数据 89 10.2 调用sed 89 10.2.1 保存sed输出 90 10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本sed编程举例 91 10.4.1 使用p(rint)显示...

Global site tag (gtag.js) - Google Analytics