一、日志配置
SpringBoot默认集成了SLF4J日志。
配置非常的简单。在application…properties中添加如下配置。logback.xml是在本地目录下的文件
logback.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
<!-- %logger{36} 表示 Logger 名字最长36个字符 -->
<property name="LOG_PATTERN" value="%d{HH:mm:ss.SSS} %-5level %logger{36} [%line] - %msg%n" />
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="FILE_PATH" value="D:/logs/log.%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="FILE"
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>
<!-- 级别从小到达:ERROR、WARN、INFO、DEBUG -->
<!--用户指定包下 打印等级大于等于INFO级别-->
<logger name="com.example.test" level="INFO" />
<!-- 其它包下的打印超过 WARN级别的 -->
<root level="WARN">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
二、日志使用
在前面的UserController中打印输出结果:
private static final Logger LOGGER = LoggerFactory.getLogger(UserController.class);
LOGGER.info(user.toString());
public class UserController {
//依赖注入
@Autowired
UserDao userMapper;
private static final Logger LOGGER = LoggerFactory.getLogger(UserController.class);
@RequestMapping(value = "jay")
public User findUserByName() {
LOGGER.info("打印日志");
//调用dao层
User user = userMapper.selectUserByName("jay");
LOGGER.info(user.toString());
return user;
}
}