Spring boot 官网给出的参考:
When possible, we recommend that you use the -spring
variants for your logging configuration (for example, logback-spring.xml
rather than logback.xml
). If you use standard configuration locations, Spring cannot completely control log initialization.
Profile-specific Configuration
The <springProfile>
tag lets you optionally include or exclude sections of configuration based on the active Spring profiles. Profile sections are supported anywhere within the <configuration>
element. Use the name
attribute to specify which profile accepts the configuration. The <springProfile>
tag can contain a simple profile name (for example staging
) or a profile expression. A profile expression allows for more complicated profile logic to be expressed, for exampleproduction & (eu-central | eu-west)
. Check the reference guide for more details. The following listing shows three sample profiles:
官网地址:https://docs.spring.io/spring-boot/docs/2.1.2.RELEASE/reference/htmlsingle/
1、Spring boot 框架中配置logback-spring.xml
首先将logback-spring.xml放在项目目录的resource下,然后
在项目的配置文件application.yml加入如下配置:
#日志配置 logging: config: classpath:logback-spring.xml
直接给出
logback-spring.xml配置文件供参考:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符-->
<property name="LOG_PATTERN"
value="%red(%date{HH:mm:ss.SSS}) %green([%thread] %-5level %logger{36} - %msg%n)" />
<!-- 开发、测试环境 -->
<springProfile name="dev,test">
<!-- 定义日志存储的路径,不要配置相对路径 F:\正反斜杠有区别 -->
<!-- F:\正反斜杠有区别 -->
<property name="FILE_PATH" value="F:\logs/stdout.log.%d{yyyy-MM-dd}.%i.log" />
</springProfile>
<!-- 生產環境 -->
<springProfile name="pro">
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="FILE_PATH" value="/user/lib/cccf/logs/cccf.%d{yyyy-MM-dd}.%i.log" />
</springProfile>
<!-- 控制台输出日志 -->
<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.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>cdlgb_logs\%d{yyyy-MM-dd}/stdout.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- each file should be at most 10MB, keep 15 days worth of history,
but at most 3GB -->
<maxFileSize>10MB</maxFileSize>
<maxHistory>15</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}-%msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
</appender>
<!-- project default level -->
<logger name="com.hiynn.cccf" level="INFO" />
<!-- 日志输出级别:DEBUG,INFO,WARN,ERROR四种-->
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="FILE" />
</root>
</configuration>
我们的配置文件实现以下功能点:
1、日志输出格式自定义。
2、保留最近N天的日志。
3、按日期每天创建文件夹管理日志。
4、每个文件下日志文件大小超过10M就会创建新的日志文件,方便从庞大日志文件中排查错误。
5、实现多环境日志管理设置。
6、对日志级别进行管理。
2、最终结果展示:
最近半个月的日志:
每天日志详情:
转载请注明原创,请尊重原创。