日志组件之debug动态开关

来源:互联网 发布:linux 分页 0.11 编辑:程序博客网 时间:2024/04/27 15:53

日志组件之debug动态开关

一、应用场景

二、logback简介

三、logback应用debug动态开关

 


一、应用场景

生产环境,系统日志记录级别一般高于或等于INFO,不会开启DEBUG级别的日志打印。

但如果生产环境系统出现问题,需要在一段时间内启用debug日志,以便调查分析问题,那怎么办呢?

本文将提供一种可行方案。

 

二、logback简介

Logback是由log4j创始人设计的又一个开源日志组件。

logback当前分成三个模块:logback-core,logback-classic和logback-access。logback-core是其它两个模块的基础模块。

logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14Logging。

logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

       

三、logback应用debug动态开关

       在logback中有一个过滤器TurboFilter,有以下特点:

       1.TurboFilter会试图记录上下文环境。因此他们会在每次logging请求产生的时候调用,而不是一个指定的appender使用时才出现。

       2.更重要的是,TurboFilter会在日志事件对象创建前调用。因此它具有更高性能的过滤日志事件,即使在事件被创建之前

      

       相关代码与配置:

       DebugLevelTurboFilter 基于TurboFilter。代码如下:

       

      

       DebugLevelTurboFilter 依赖于一个动态配置组件 DebugLevelConfig(依赖于 diamond )

       

      

       logback.xml中添加一行配置:

       <turboFilterclass="org.oschina.log.logback.filter.DebugLevelTurboFilter" />

       

       

0 0
原创粉丝点击