springboot日志配置
基础知识
springboot默认日志配置格式
"%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n"
默认日志输出格式表达式释义
%clr(表达式){颜色}:设置输出内容的颜色
blue 蓝色
cyan 青色
faint 淡灰色
green 绿色
magenta 品红色
red 红色
yellow 黄色
%d{yyyy-MM-dd HH:mm:ss.SSS}:显示日期,年-月-日 时-分-秒.毫秒(2021-01-01 01:01:01.001)
%5p:显示日志级别ERROR,WARN,INFO,DEBUG,TRACE;%5若字符长度小于5,则右边用空格填充,%-5若字符长度小于5,则左边用空格填充
%t:显示产生该日志的线程名
%5:若字符长度小于5,则右边用空格填充
%-5若字符长度小于5,则左边用空格填充
%.15:若字符长度超过15,截去多余字符,
%15.15若字符长度小于5,则右边用空格填充;若字符长度超过15,截去多余字符
%m:显示输出消息
%n:换行符
原文链接:https://blog.csdn.net/qq_34049732/article/details/116722116
配置文件
开发模式
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--开发模式-->
<!--日志优先级: ERROR、WARN、INFO、DEBUG、TRACE、 ALL -->
<!-- 日志存放路径 -->
<property name="log.path" value="./logs"/>
<!-- 日志输出格式 -->
<property name="log.pattern"
value="[%-5level] %d{HH:mm:ss.SSS} [%12thread] %-40.40logger{35} -[%15method,%5line]:%msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- debug日志-->
<appender name="file-debug" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/debug/file-debug.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按大小回滚-->
<fileNamePattern>${log.path}/debug/file-debug.%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<!--设置单个日志文件最大大小-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志最大的历史 90天 -->
<maxHistory>90</maxHistory>
<!--允许存放的最大日志大小-->
<!-- <totalSizeCap>20GB</totalSizeCap>-->
</rollingPolicy>
<!-- 日志输出格式 -->
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<!--日志过滤-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>DEBUG</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- info日志 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info/file-info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn/file-info.%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
<!-- <totalSizeCap>20GB</totalSizeCap>-->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- warn日志 -->
<appender name="file-warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/warn/file-warn.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn/file-warn.%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
<!-- <totalSizeCap>20GB</totalSizeCap>-->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--error日志-->
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error/file-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn/file-error.%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
<!-- <totalSizeCap>20GB</totalSizeCap>-->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--自定义日志-->
<appender name="deserializeLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/deserializeLog/deserializeDataInfo.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/deserializeLog/deserializeDataInfo-%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 允许日志包-->
<logger name="com.toro" level="debug"/>
<logger name="org.springframework" level="warn"/>
<!-- 自定义日志路径-->
<logger name="deserializeLog" additivity="false" level="INFO">
<appender-ref ref="deserializeLogAppender"/>
</logger>
<!-- 控制台日志-->
<root level="info">
<appender-ref ref="console"/>
</root>
<!--系统日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
<appender-ref ref="file-warn"/>
<appender-ref ref="file-debug"/>
</root>
</configuration>
生产环境
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--生产环境-->
<!--日志优先级: ERROR、WARN、INFO、DEBUG、TRACE、 ALL -->
<!-- 日志存放路径 -->
<property name="log.path" value="./logs"/>
<!-- 日志输出格式 -->
<property name="log.pattern"
value="[%-5level] %d{HH:mm:ss.SSS} [%12thread] %-40.40logger{35} -[%15method,%5line]:%msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- info日志 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info/file-info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/info/file-info.%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
<!-- <totalSizeCap>20GB</totalSizeCap>-->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- warn日志 -->
<appender name="file-warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/warn/file-warn.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn/file-warn.%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
<!-- <totalSizeCap>20GB</totalSizeCap>-->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--error日志-->
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error/file-error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/warn/file-error.%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
<!-- <totalSizeCap>20GB</totalSizeCap>-->
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--自定义日志-->
<appender name="deserializeLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/deserializeLog/deserializeDataInfo.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/deserializeLog/deserializeDataInfo-%d{yyyy-MM-dd}.part_%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>90</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 允许日志包-->
<logger name="com.toro" level="info"/>
<logger name="org.springframework" level="warn"/>
<!-- 自定义日志路径-->
<logger name="deserializeLog" additivity="false" level="INFO">
<appender-ref ref="deserializeLogAppender"/>
</logger>
<!-- 控制台日志-->
<root level="info">
<appender-ref ref="console"/>
</root>
<!--系统日志-->
<root level="info">
<appender-ref ref="file_info"/>
<appender-ref ref="file_error"/>
<appender-ref ref="file-warn"/>
</root>
</configuration>
自定义日志使用方法
import lombok.extern.slf4j.Slf4j;
import java.util.logging.Logger;
@Slf4j
public class logtest {
public static void logpacktest() {
Logger logger = Logger.getLogger("deserializeLog");
logger.info("指定位置deserializeLog插入日志");
}
}
maven项目使用
<!--logback日志实现-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<!--slf4j日志门面-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.3.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
</dependency>
我自己springboot项目中使用版本
slf4j-api 1.7.36
logback-classic 1.2.11
lombok 1.16.18