SpringBoot的日志处理还是比较简单的,默认是logBack作为日志处理组件,只需要引用logback.xml配置即可。
下面讲一下SpringBoot怎么配置logBack。
1.maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
不需要再单独引入logback的配置,因为SpringBoot默认是使用Logback作为日志组件的
日志默认引用.png
2.logback配置
LogBack默认的日志文件名为logback-spring.xml
,放在resouces根目录下。
剩下的就是Logback的具体参数了,没有区别
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">
<!-- appender -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %m%n
</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 系统日志配置 -->
<appender name="sysLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/sys.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_PATH}/%d{yyyyMMdd}/sys-%d{yyyyMMdd}.log
</FileNamePattern>
<maxHistory>365</maxHistory>
</rollingPolicy>
<encoder>
<ImmediateFlush>true</ImmediateFlush>
<charset>utf-8</charset>
<Pattern>[%d{yyyyMMdd HH:mm:ss}] - %m%n</Pattern>
</encoder>
</appender>
<!-- additivity为false不向root控制台输出 -->
<logger name="sysLog" additivity="false" level="info">
<appender-ref ref="stdout"/>
<appender-ref ref="sysLogAppender"/>
</logger>
<!-- root 默认日志配置 -->
<root level="info">
<appender-ref ref="stdout"/>
<appender-ref ref="sysLogAppender"/>
</root>
<logger name="org.springframework" level="INFO"/>
</configuration>
这里面有一个参数${LOG_PATH}
,实际生产中,日志的路径需要统一指定,最好在application.yml统一命名,便于以后的参数几种管理。
logging:
path: d:\\logs\\springboot
application.yml
增加如上配置,则整个日志的存储都放在设置的路径下了。
这里说明一下,SpringBoot的启动和停止日志也可以同时输出至sys.log这个下面,这样就可以记录应用的启动和停止日志,便于追溯问题。
<!-- root 默认日志配置 -->
<root level="info">
<appender-ref ref="stdout"/>
<appender-ref ref="sysLogAppender"/>
</root>
3.具体使用
@RestController
public class LogController {
private static Logger sysLog = LoggerFactory.getLogger("sysLog");
@RequestMapping("/log")
public void log() {
sysLog.info("日志成功输出");
}
}
这样就可以输出日志了。
4.总结
SpringBoot有默认的Logback日志组件,如果要用其他的日志组件,比如Log4J,Log4J2,可以自行百度搜索。
网友评论