@nextleaf
2018-08-01T09:56:25.000000Z
字数 2499
阅读 7026
SpringBoot
slf4j
日志
配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN"
value="%date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="FILE_PATH"
value="D:/logs/demo3/demo.%d{yyyy-MM-dd}.%i.log" />
<!-- 控制台输出日志 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 按照上面配置的LOG_PATTERN来打印日志 -->
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!--每天生成一个日志文件,保存15天的日志文件。rollingFile是用来切分文件的 -->
<appender name="rollingFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>
${FILE_PATH}
</fileNamePattern>
<!-- keep 15 days' worth of history -->
<maxHistory>15</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- 日志文件的最大大小 -->
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- project default level -->
<logger name="com.itcodai.demo3" level="INFO" />
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="rollingFile" />
</root>
</configuration>
如上,已经详细做了注释,logback.xml文件中主要是用来配置日志文件的输出格式,输出路径,保存时间,日志文件大小,以及日志的输出级别。默认的是INFO级别,我们也可以设置DEBUG,ERROR级别,看具体需要。一般项目部署到生产环境后,换成ERROR级别,在开发的时候一般设置成INFO级别即可。把这个logback.xml放到根目录下。
2. application.yml配置文件
server:
port: 8009
logging:
config: logback.xml
level:
com:
nextleaf:
course01:
dao: trace
或application.properties
logging.config=logback.xml
logging.level.com.nextleaf.course01.dao=trace
配置文件很简单,主要是指定一下使用的哪个日志配置文件,如上:指定的日志配置文件是根路径下的logback.xml文件。logging.level用来指示Mapper中的日志输出级别为trace,是为了打印出具体的sql,方便定位问题,部署到生产环境时,也将这个级别改成error即可。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
private final static Logger logger = LoggerFactory.getLogger(TestController.class);
@RequestMapping("/testLog")
public String testLog() {
logger.debug("=====测试日志debug级别打印====\n");
logger.info("======测试日志info级别打印=====\n");
logger.error("=====测试日志error级别打印====\n");
// 可以使用占位符打印出一些参数信息
String str = "blog.itcodai.com";
logger.info("======欢迎访问倪升武的博客:{}\n", str);
return null;
}
}
SpringBoot中的slf4j日志配置就大概介绍这么多,已经足够用了,在项目中使用的很频繁