SpringBoot默认采用logback作为日志输出。
1、参数含义
参数 | 含义 |
---|---|
%date或%d | 日期 |
%level或%p | 日志级别,DEBUG、INFO、WARN、ERROR |
%X{var} | 访问MDC中和线程绑定的变量 |
%thread或%t | 线程名 |
%logger或%c | 类全名 |
%line | 行号 |
%msg或%m | 输出内容 |
%n | 换行符 |
2、xml参考配置
日志配置文件一般命名为logback-spring.xml
或logback.xml
,日志框架在启动时默认就会读取该配置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 引用配置属性 -->
<springProperty scope="context" name="appName" source="spring.application.name"/>
<!--1. 输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- info级别,也会记录warn和error -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
<encoder>
<charset>UTF-8</charset>
<!-- 输出格式 -->
<Pattern>%d [%p] [%t] [%c:%line] [%X{seq}] %m%n</Pattern>
</encoder>
</appender>
<!--2. 输出到文件-->
<!-- 2.1 level为 INFO 日志,时间滚动输出 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路径 -->
<file>${user.home}/log/${appName}.log</file>
<!--日志文档输出格式-->
<encoder>
<charset>UTF-8</charset>
<pattern>%d [%p] [%t] [%c:%line] [%X{seq}] %m%n</pattern>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${user.home}/log/${appName}.log.%d{yyyyMMdd}.gz</fileNamePattern>
<!--日志文档保留天数-->
<maxHistory>30</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录info级别的,不记录warn以及error,用作定向输出info日志文件 -->
<!--<filter class="ch.qos.logback.classic.filter.LevelFilter">-->
<!--<level>info</level>-->
<!--<onMatch>ACCEPT</onMatch>-->
<!--<onMismatch>DENY</onMismatch>-->
<!--</filter>-->
<!-- info级别,也会记录warn和error -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender>
<!--特定输出-->
<appender name="WarnController" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>warn</level>
</filter>
<encoder>
<charset>UTF-8</charset>
<Pattern>%d [%p] [%t] [%c:%line] [%X{seq}] %m%n</Pattern>
</encoder>
</appender>
<!-- 单独对某个类或某个包下配置,additivity为false代表不继承root(root中则不再输出此日志)-->
<logger name="net.zhaoxiaobin.web.WarnController" level="warn" additivity="false">
<appender-ref ref="WarnController"/>
</logger>
<!-- root节点会把所有日志经过level过滤再输出给appender对应配置 -->
<root level="debug">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
网友评论