logback配置文件分析

来源:互联网 发布:keynote如何在windows 编辑:程序博客网 时间:2024/04/29 21:28

一、配置文件基本结构图:

1、appender定义写日志的组件

2、logger用于设置某一个包或者类的日志打印级别,以及指定appender,可以不设置,则默认走root

3、root是根logger,只有一个level属性

二、配置文件详解:

<!-- scan设置为true时,配置文件修改会重新加载,默认为true,检测周期scanPeriod为60秒,没有给出时间单位,默认为毫秒; --><!-- debug属性设置为true时,将打印logback内部日志,实时查看logback运行状态,默认为false --><configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- property用来定义变量,key/value格式,插入上下文中,可以通过${}来获取 --><property name="LOG_HOME" value="${catalina.home}/logs" /> <!-- 定义日志文件根路径 --><!-- ConsoleAppender将日志打印到控制台的组件 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder> <!-- 对日志信息格式化 --><pattern>project:<6>:%5level, %M\(%F %L\), %d{yyyy-MM-dd_HH:mm:ss}, %msg%n</pattern></encoder></appender><!-- name 日志组件名称 --><!-- RollingFileAppender 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 --><!-- rollingPolicy 当发生滚动时,决定 RollingFileAppender的行为,涉及文件移动和重命名TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动FixedWindowRollingPolicy: 根据固定窗口算法重命名文件的滚动策略 --><appender name="MyAppender"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/project-info.log</file> <!-- 当前日志文件名称 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/project-info.log.%d{yyyy-MM-dd-HH}</fileNamePattern><maxHistory>0</maxHistory></rollingPolicy><encoder><pattern>project:<6>:%5level, loginOpt, %d{yyyy-MM-dd_HH:mm:ss}, %msg%n</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level>  <!-- 取值INFO/DEBUG/WARN/ERROR --><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- triggeringPolicy: 告知 RollingFileAppender 合适激活滚动SizeBasedTriggeringPolicy: 查看当前活动文件的大小,如果超过指定大小会告知RollingFileAppender 触发当前活动文件滚动 --><appender name="MyAppender2"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/project-info.log</file> <!-- 当前日志文件名称 --><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">       <fileNamePattern>${LOG_HOME}/wm-info.log.%d{yyyy-MM-dd-HH}.zip</fileNamePattern>       <minIndex>1</minIndex>   <!-- 窗口索引最小值 -->    <maxIndex>3</maxIndex>   <!-- 窗口索引最大值,当用户指定的窗口过大时,会自动将窗口设置为12。 -->    </rollingPolicy>       <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">       <maxFileSize>5MB</maxFileSize>       </triggeringPolicy>       <encoder>       <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>       </encoder>  <filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level>  <!-- 取值INFO/DEBUG/WARN/ERROR --><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="perfAppender"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/project-perf.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/project-perf.log.%d{yyyy-MM-dd}</fileNamePattern><maxHistory>0</maxHistory></rollingPolicy><encoder><pattern>%msg%n</pattern></encoder></appender><!-- Perf4j最重要的appender就是AsyncCoalescingStatisticsAppender,它会把一段时间内StopWatch的信息汇总到一个独立的GroupedTimingStatistics日志信息,然后把这个独立的信息传给下游的appenders,比如perfAppender,这样就可以写到文件中去 --><appender name="CoalescingStatistics"class="org.perf4j.logback.AsyncCoalescingStatisticsAppender"><appender-ref ref="perfAppender" /><param name="TimeSlice" value="10000"/> <!-- 配置多少时间间隔去做一次汇总写入文件中,默认值是 30000 ms --></appender><logger name="org.perf4j.TimingLogger" level="INFO" additivity="false"><level value="INFO"/><appender-ref ref="CoalescingStatistics" /></logger><!-- name 指定受此logger约束的一个包或者具体类 --><!-- level 设置打印级别,可选,如果未设置则强行继承上级的level --><!-- addtivity 是否向上级传递打印信息,默认为true --><!-- appender-ref 指定引用的日志组件 --><logger name="org.springframework" level="INFO" additivity="false"><appender-ref ref="STDOUT" /><appender-ref ref="MyAppender" /><appender-ref ref="MyAppender2" /></logger><root level="warn"><appender-ref ref="STDOUT" /><appender-ref ref="MyAppender" /><appender-ref ref="MyAppender2" /></root></configuration>

三、logback依赖jar包:



0 0
原创粉丝点击