知识要点
- SpringBoot项目新增Logback日志、
- 自定义Logback日志路径和文件格式
本节对应教学视频
SpringBoot从入门到精通 SSM/MyBatis/Redis/KafKa/SpringCloudke.qq.comSpringBoot 默认支持Logback进行日志记录。可以通过配置修改为JUL、JCL、Log4J等,对Java日志混乱的体系无法理清的读者可以参考本人的Java日志梳理视频。
日志级别
TRACE<DEBUG<INFO<WRAN<ERROR<FATAL<OFF
上机实验
SpringBoot新增Logback日志
// xxxx.java file
private Logger logger = LoggerFactory.getLogger(getClass());
private static Logger logger = LoggerFactory.getLogger(getClass());
private Logger logger = LoggerFactory.getLogger(this.getClass());
logger.info("this is my springboot hello world program ");
logger.debug("this is my springboot hello world program ");
logger.error("this is my springboot hello world program ");
将日志存入文件中
# application.yml file
logging.level.root: WARN
logging.level.org.springframework.security: DEBUG
logging.level.org.springframework.web: ERROR
logging.level.org.hibernate: DEBUG
logging.level.org.apache.commons.dbcp2: DEBUG
logging.file: D:/dir
# %d日期时间 -5level 显示日志级别 -5表示从左显示5个字符宽度 logger{15}日志长度 %n 回车
logging.pattern.console: %d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n
logging.pattern.file: %d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n
讨论:通过在resources/logback-spring.xml文件配置Logback日志的输出格式和日志路径
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 时间滚动输出 level为 DEBUG 日志 -->
<appender name="file-debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/debug.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="file-info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/info.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 时间滚动输出 level为 INFO 日志 -->
<appender name="file-error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/error.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 指定项目可输出的最低级别日志 -->
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="file-debug"/>
<appender-ref ref="file-info"/>
<appender-ref ref="file-error"/>
</root>
</configuration>