SpringBoot 使用 Logback做日志管理
使用配置文件接管日志配置,所以 yml或者properties 的log配置可以删除
- 在 resources下新建“logback.xml”。注意:文件名一定要一样,否则需要在yml配置中配置logging.config 指定路径及配置文件名字
- 添加配置:
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <!-- 属性声明,可以在xml其他配置中通过 ${属性名} 使用 --> <!-- 相对路径,springboot项目打jar后,启动项目会在jar同级目录新建 logs文件夹存放日志 --> <property name="logDir" value="logs" /> <!-- 打印到控制台的配置 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <!-- formatter:时间 级别 线程 类 类行 内容 --> <encoder> <pattern>%date{MM-dd HH:mm:ss} %highlight(%-5level) [%thread] (%file:%line\) - %m%n</pattern> </encoder> </appender> <!-- info级别的日志输出到文件,会包含错误日志 --> <appender name="info-out" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logDir}//info.log</file> <encoder> <pattern>%date{yyyy-MM-dd HH:mm:ss} %-5level [%thread] (%file:%line\) - %m%n</pattern> </encoder> <!-- 日志文件分割,每天分割,保留90天 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logDir}//info.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>90</maxHistory> </rollingPolicy> </appender> <!-- 错误级别的日志输出到文件,只输出 error、warn --> <appender name="error-out" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logDir}//error.log</file> <encoder> <pattern>%date{yyyy-MM-dd HH:mm:ss} %-5level [%thread] (%file:%line\) - %m%n</pattern> </encoder> <!-- 过滤器:如果是 level 级别的,那么不接收 --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>TRACE</level> <onMatch>DENY</onMatch> </filter> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level> <onMatch>DENY</onMatch> </filter> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>DENY</onMatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logDir}//error.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>90</maxHistory> </rollingPolicy> </appender> <!-- 日志根:info级别,会输出到控制台和info文件 --> <root level="INFO"> <appender-ref ref="console" /> <appender-ref ref="info-out" /> </root> <!-- 自定义的输出,但是只接收错误日志,以便于日志分析 --> <logger name="xxxx" leval="DEBUG"> <appender-ref ref="error-out" /> </logger> </configuration>