springboot 日志按照天数切分并且将lombok.extern.slf4j.Slf4j 日志输出到指定文件夹。配置如下:
在项目src/main/resource下创建新文件夹config,并创建logback-spring.xml。据说springboot加载配置文件的时候,更喜欢名字带"spring"的配置文件,这样会优先加载,真实。
然后在application.properties或者application.yml中配置
#日志配置
logging.config=classpath:config/logback-spring.xml
#yml日志配置
logging:
config: classpath:config/logback-spring.xml
这些文件或文件名自己喜欢就行。
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</contextName>
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--按天生成日志-->
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<Prudent>true</Prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>
logs/spring.%d{yyyy-MM-dd}.log
</FileNamePattern>
<maxHistory>60</maxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} -%msg%n
</Pattern>
</layout>
<encoder>
<!-- pattern节点,用来设置日志的输入格式 -->
<pattern>
%d %p (%file:%line\)- %m%n
</pattern>
<!-- 记录日志的编码 -->
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
</appender>
<root level="info">
<appender-ref ref="console" />
</root>
<!-- 控制台和文件日志级别 -->
<!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
<!-- name="com.xxx" 包名,也就是group packageName -->
<logger name="com.xxx" level="INFO" additivity="false">
<appender-ref ref="logFile" />
</logger>
</configuration>
核心配置:
<FileNamePattern>
logs/spring.%d{yyyy-MM-dd}.log
</FileNamePattern>
如果是在IDE中启动springboot,会在xxx/src 生成logs文件夹并生成日志名为spring.xxxx.xx.xx.log的日志文件。jar的话,是与jar包同父目录下生成logs文件夹和log日志。
输出配置:
<root level="info">
<appender-ref ref="console" />
</root>
配置这个可以指定控制台输出的日志级别,如果你想要springboot默认启动时的那些日志,level="info"就行了,不想要就设置级别比info高即可。
<!-- 控制台和文件日志级别 -->
<!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
<!-- name="com.xxx" 包名,也就是group packageName -->
<logger name="com.xxx" level="INFO" additivity="false">
<appender-ref ref="logFile" />
</logger>
配置这个可以设置spring.xxxx.xx.xx.log日志文件中输出的日志级别。偷懒的同学直接复制改一下name="com.xxx"中的xxx即可。