logback配置文件分析

    xiaoxiao2021-12-15  59

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

    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包:

    转载请注明原文地址: https://ju.6miu.com/read-1000046.html

    最新回复(0)