logback配置详解
来源:互联网 发布:防盗门锁芯规格 知乎 编辑:程序博客网 时间:2024/05/22 23:28
原文地址:http://chenxiaoqiong.com/articles/logback/
最近公司项目进行了重构,日志管理从Log4j迁移到了LogBack。 Logback是由log4j创始人Ceki Gülcü为取代log4j而设计的又一个开源日志组件。无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进:http://www.oschina.net/translate/reasons-to-prefer-logbak-over-log4j。
logback配置详解
日志级别
- DEBUG:指出细粒度信息事件对调试应用程序是非常有帮助的;
- INFO:消息在粗粒度级别上突出强调应用程序的运行过程;
- WARN:会出现潜在错误的情形;
- ERROR:指出虽然发生错误事件,但仍然不影响系统的继续运行;
- FATAL:指出每个严重的错误事件将会导致应用程序的退出;
- 另外,还有两个可用的特别的日志记录级别:
ALL:用于打开所有日志记录;
OFF:用于关闭所有日志记录。
优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。通过定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。如果设置级别为INFO,则优先级高于等于INFO级别(如:INFO、 WARN、ERROR)的日志信息将可以被输出,小于该级别的如DEBUG将不会被输出。
基本配置及解释
基本配置文件
<?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="log.charset.encoding" value="UTF-8"/> <property name="LOG_HOME" value="log" /> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <Encoding>UTF-8</Encoding> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </layout> </appender> <!-- 按照每天生成日志文件 --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <Encoding>UTF-8</Encoding> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${LOG_HOME}/myApp.log.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </layout> </appender> <!-- 按照每天生成错误日志文件 --> <appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <Encoding>UTF-8</Encoding> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${LOG_HOME}/myApp.log_error.%d{yyyy-MM-dd}.log</FileNamePattern> <MaxHistory>30</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </layout> <!-- 下面为配置只输出error级别的日志 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 设置具体一个类日志的日志打印 --> <loger name="com.candy.controller.TestController" level="INFO" activity="false"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </loger> <root level="DEBUG"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE" /> </root> </configuration>
配置文件节点详解
设置变量: < property >
用来定义变量值的标签, 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。设置loger:< loger >
用来设置某一个包或者具体的某一个类的日志打印级别、以及指定。仅有一个name属性,一个可选的level和一个可选的addtivity属性。
name:
用来指定受此loger约束的某一个包或者具体的某一个类。
level:
用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
如果未设置此属性,那么当前loger将会继承上级的级别。
addtivity:
是否向上级loger传递打印信息。默认是true。
< loger >可以包含零个或多个< appender-ref >元素,标识这个appender将会添加到这个loger。设置root:< root >
也是元素,但是它是根loger。只有一个level属性,应为已经被命名为”root”.
level:
用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。
默认是DEBUG。
可以包含零个或多个元素,标识这个appender将会添加到这个loger。
过滤器filter
过滤器的返回值只能是ACCEPT、DENY和NEUTRAL的其中一个
DENY:记录事件立即被抛弃,不再经过剩余过滤器;
NEUTRAL:有序列表里的下一个过滤器会接着处理记录事件;
ACCEPT:那么记录事件被立即处理,不再经过剩余过滤器。
过滤器被添加到中,为添加一个或多个过滤器后,可以用任意条件对日志进行过滤。 有多个过滤器时,按照配置顺序执行。常用的过滤器:
- LevelFilter: 级别过滤器,根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。有以下子节点:
< level >:设置过滤级别
< onMatch >:用于配置符合过滤条件的操作
< onMismatch >:用于配置不符合过滤条件的操作 - ThresholdFilter: 临界值过滤器,过滤掉低于指定临界值的日志。当日志级别等于或高于临界值时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝。
- EvaluatorFilter: 求值过滤器,评估、鉴别日志是否符合指定条件。
- LevelFilter: 级别过滤器,根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。有以下子节点:
此篇文章只是自己做了一下总结,还有诸多不足,还请大家指正!
- logback 配置详解
- logback配置详解1
- logback 常用配置详解
- logback 配置详解
- logback 常用配置详解
- logback配置详解
- logback 配置详解
- logback 配置详解
- logback配置详解
- Logback常用配置详解
- logback 配置详解
- logback 配置详解
- logback.xml配置详解
- logback 配置详解
- logback简单配置详解
- logback 配置详解
- logback配置详解
- logback配置详解
- 使用procedure analyse()分析mysql给出的关于表结构的优化建议
- Missing Number
- iOS 加密总结(Base64 、DES、MD5)持续更新
- Spring MVC 中使用H5接口FormData上传文件实例
- 启动优化 让app秒开
- logback配置详解
- FMDB详解
- 小伙的java之旅——泛型
- Linux TCP/IP 网络工具对比:net-tools 和 iproute2
- 在java web项目中将http 转变成https tomcat8.5
- 基于一阶 HMM 标注序列算法的分词算法解析
- html
- 互联网实习工作准备
- android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据