日志记录器:root
控制台:appender
输出格式:encoder
通用属性配置标签:<property> </property>
所有的配置都是在根标签中进行的:<configuration> </configuration>
通用配置
<property name="pattern" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L %thread %m%n"></property> <property name="pattern1" value="[%-5level]%d{yyyy-MM-dd HH:mm:ss.SSS}%c%M%L%thread%m%n"></property> <!-- 配置文件的输出路径 --> <property name="logDir" value="D://test"></property>
1. 配置控制台输出
<!-- 配置控制台appender --> <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <!-- 表示对于日志输出目标的配置 默认:System.out 表示以黑色字体输出日志 设置:System.err 表示以红色字体输出日志 --> <target> System.err </target> <!--配置日志输出格式--> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!-- 格式引用通用属性配置 --> <pattern>${pattern}</pattern> </encoder> </appender>
2. 配置文件方式输出 --普通文件
<!-- 配置文件的appender 普通文件--> <appender name="fileAppender" class="ch.qos.logback.core.FileAppender"> <!-- 引入文件位置 --> <file>${logDir}/logback.log</file> <!-- 设置输出格式 --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${pattern}</pattern> </encoder> </appender>
3. 配置文件方式输出 --html文件
<!-- 配置文件的appender html文件 --> <appender name="htmlFileAppender" class="ch.qos.logback.core.FileAppender"> <file>${logDir}/logback.html</file> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <layout class="ch.qos.logback.classic.html.HTMLLayout"> <pattern>${pattern1}</pattern> </layout> </encoder> </appender>
4. 配置文件方式输出 --可拆分归档的文件
只要使用了日志的拆分,FileNamePattern属性一定要使用
<!-- 配置文件的appender 可拆分归档的文件 --> <appender name="roll" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 输入格式 --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${pattern}</pattern> </encoder> <!-- 引入文件位置 --> <file>${logDir}/roll_logback.log</file> <!-- 指定拆分规则 --> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- 按照时间和压缩格式声明文件名 压缩格式gz --> <fileNamePattern>${logDir}/roll.%d{yyyy-MM-dd}.log%i.gz</fileNamePattern> <!-- 按照文件大小来进行拆分 --> <maxFileSize>1KB</maxFileSize> </rollingPolicy> </appender>
5. 配置控制台方式输出 --使用过滤器
<!-- 配置控制台的appender 使用过滤器 --> <appender name="consoleFilterAppender" class="ch.qos.logback.core.ConsoleAppender"> <target> System.err </target> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${pattern}</pattern> </encoder> <!-- 配置过滤器 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 设置日志的输出级别 --> <level>ERROR</level> <!-- 高于level中设置的级别,则打印日志 --> <onMatch>ACCEPT</onMatch> <!-- 低于level中设置的级别,则屏蔽日志 --> <onMismatch>DENY</onMismatch> </filter> </appender>
6. 配置异步的方式输出
代码是自上而下的方式顺序执行的,系统在记录日志时,项目功能是停滞的,此时如果日志记录量过于庞大,那么本身的业务代码的执行效率就会非常低,所以可以通过异步配置日志的方式解决。
<!-- 配置异步日志 --> <appender name="asyncAppender" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="consoleAppender"/> </appender>
重点:上面配置好的appender都需要在日志记录器root中进行引用才能生效
<!-- 日志记录器 配置root logger level:配置日志级别 可以同时配置多个appender,做日志的多方向输出 --> <root level="ALL"> <!-- 引入appender --> <!--<appender-ref ref="roll"/>--> <!--<appender-ref ref="consoleFilterAppender"/>--> <!--<appender-ref ref="consoleAppender"/>--> <appender-ref ref="asyncAppender"/> </root>
自定义logger配置
<!-- additivity="false" 表示不继承rootlogger --> <logger name="com.bjpowernode" level="info" additivity="false"> <!-- 在自定义logger中配置appender --> <appender-ref ref="consoleAppender"/> </logger>
为什么是开始
好奇心是动力