springboot默认启动的logback日志分析
springboot默认集成了logback日志。
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.3.3.RELEASE)
2022-04-19 13:59:18.086 INFO 4444 --- [ main] c.s.e.EurekaServerApplication : No active profile set, falling back to default profiles: default
2022-04-19 13:59:18.792 WARN 4444 --- [ main] o.s.boot.actuate.endpoint.EndpointId : Endpoint ID 'service-registry' contains invalid characters, please migrate to a valid format.
2022-04-19 13:59:18.903 INFO 4444 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=7006a679-7862-3a5a-adca-267c2acdc775
说明:
2022-04-19 13:59:18.086 日期时间
INFO 日志等级
4444 进程id
main 线程名称
c.s.e.EurekaServerApplication 日志所在类名称
No active profile set, falling back to default profiles: default 日志内容
自定义logback配置文件
- 引入自定义配置文件
logging:
config: classpath:logback.xml
- 自定义Layout
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="outConsole" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
%30(%green(%date{yyyy-MM-dd HH:mm:ss.SSS}) %highlight(%-5level) [%thread]) %cyan(%logger{32}.%method) - %msg%n
</pattern>
</layout>
</appender>
<root level="INFO">
<appender-ref ref="outConsole"/>
</root>
</configuration>

logback输入日志到文件
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<appender name="outInfoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<encoder>
<pattern>
%30(%green(%date{yyyy-MM-dd HH:mm:ss.SSS}) %highlight(%-5level) [%thread]) %cyan(%logger{32}.%method) - %msg%n
</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D://log//dev/sys-log.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="outInfoFile"/>
</root>
</configuration>
<rollingPolicy>:滚动记录,就是按照指定时间分割记录
生产环境的日志配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志文件名 -->
<property name="LOG_FILE" value="sys-log" />
<!-- 日志文件路径 -->
<property name="LOG_PATH" value="D://log//dev" />
<!-- 控制台日志输出格式 -->
<property name="LOG_PATTERN_CONSOLE" value="%30(%boldGreen(%d{yyyy-MM-dd HH:mm:ss.SSS}) %highlight(%-5level) %magenta([%thread])) %boldCyan(%logger{32}.%method) - %yellow(%msg%n)" />
<!-- 文件日志输出格式,不要配置颜色样式,会造成乱码 -->
<property name="LOG_PATTERN_FILE" value="%30(%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread]) %logger{32}.%method - %msg%n" />
<!--- 设置控制台日志 -->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${LOG_PATTERN_CONSOLE}</pattern>
</encoder>
</appender>
<!-- 设置日志文件 -->
<appender name="fileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>${LOG_PATTERN_FILE}</pattern>
</encoder>
<!-- 总文件日志 -->
<file>${LOG_PATH}/${LOG_FILE}.log</file>
<!--
SizeAndTimeBasedRollingPolicy : 基于时间和大小的滚动器
TimeBasedRollingPolicy : 基于时间的滚动器
-->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/${LOG_FILE}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>-->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- 每天的文件日志 -->
<fileNamePattern>${LOG_PATH}/${LOG_FILE}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<!-- 日志文件保存30天,超过30天的自动删除 -->
<maxHistory>30</maxHistory>
<!-- 日志总大小 : 用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志 -->
<totalSizeCap>20GB</totalSizeCap>
<!--启动项目后清理历史日志-->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<!--日志文件最大的大小-->
<maxFileSize>20MB</maxFileSize>
</rollingPolicy>
</appender>
<!-- 设置日志级别,及需要记录日志的类 -->
<root level="INFO">
<appender-ref ref="consoleLog" />
<appender-ref ref="fileLog" />
</root>
</configuration>
网友评论