如何强制 spring 不压缩日志文件,而是在日志文件末尾附加日期
How to force spring to do not zip log files, instead append date at end of log file
目前我正在使用 spring 引导日志并且我正在通过 属性 文件对其进行配置
下面是示例日志 属性
spring.main.banner-mode=off
logging.level.root= INFO,ERROR,DEBUG
logging.level.org.springframework.web= ERROR
logging.level.com.concretepage= DEBUG
logging.pattern.console=
logging.file = D://logTest.log
logging.file.max-size=100MB
spring.output.ansi.enabled=ALWAYS
问题是日志文件备份格式是.gz格式
喜欢 logTest.log.2019-06-14.0.gz
如何排除默认压缩?
我不想在 xml 文件中硬连线配置并将其放入资源文件夹中。
我只能将滚动附加程序配置 xml 文件,但我想在 属性 文件中创建日志文件路径,因此我可以针对不同的环境动态设置它。
有什么办法可以实现这个配置吗?
在 src/main/resources
中创建 logback-spring.xml 文件
有了这个内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<cleanHistoryOnStart>${LOG_FILE_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
<maxHistory>${LOG_FILE_MAX_HISTORY:-7}</maxHistory>
<totalSizeCap>${LOG_FILE_TOTAL_SIZE_CAP:-0}</totalSizeCap>
</rollingPolicy>
</appender>
</configuration>
如果 fileNamePattern 不以 gz(或任何其他压缩格式)结尾,logback 将不会压缩文件。
作为@simon-martinelli 正确答案的替代方案,如果您不想使用自定义 logback-spring.xml
文件,可以在您的 Spring 配置参数 logging.pattern.rolling-file-name
中设置application.properties
或 application.yml
文件。
例如,要禁用所使用的压缩,请从默认文件名模式中删除 .gz
后缀(${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
根据 https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-custom-log-configuration)。
这需要将以下元素添加到 application.yml
文件中:
logging:
pattern:
rolling-file-name: "${LOG_FILE}.%d{yyyy-MM-dd}.%i"
或者如果您使用的是 application.properties
,它应该是(免责声明:我没有测试过这个,因为我只使用 YAML 文件):
logging.pattern.rolling-file-name = ${LOG_FILE}.%d{yyyy-MM-dd}.%i
目前我正在使用 spring 引导日志并且我正在通过 属性 文件对其进行配置 下面是示例日志 属性
spring.main.banner-mode=off
logging.level.root= INFO,ERROR,DEBUG
logging.level.org.springframework.web= ERROR
logging.level.com.concretepage= DEBUG
logging.pattern.console=
logging.file = D://logTest.log
logging.file.max-size=100MB
spring.output.ansi.enabled=ALWAYS
问题是日志文件备份格式是.gz格式 喜欢 logTest.log.2019-06-14.0.gz
如何排除默认压缩?
我不想在 xml 文件中硬连线配置并将其放入资源文件夹中。 我只能将滚动附加程序配置 xml 文件,但我想在 属性 文件中创建日志文件路径,因此我可以针对不同的环境动态设置它。
有什么办法可以实现这个配置吗?
在 src/main/resources
中创建 logback-spring.xml 文件有了这个内容
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<cleanHistoryOnStart>${LOG_FILE_CLEAN_HISTORY_ON_START:-false}</cleanHistoryOnStart>
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>
<maxHistory>${LOG_FILE_MAX_HISTORY:-7}</maxHistory>
<totalSizeCap>${LOG_FILE_TOTAL_SIZE_CAP:-0}</totalSizeCap>
</rollingPolicy>
</appender>
</configuration>
如果 fileNamePattern 不以 gz(或任何其他压缩格式)结尾,logback 将不会压缩文件。
作为@simon-martinelli 正确答案的替代方案,如果您不想使用自定义 logback-spring.xml
文件,可以在您的 Spring 配置参数 logging.pattern.rolling-file-name
中设置application.properties
或 application.yml
文件。
例如,要禁用所使用的压缩,请从默认文件名模式中删除 .gz
后缀(${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
根据 https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-custom-log-configuration)。
这需要将以下元素添加到 application.yml
文件中:
logging:
pattern:
rolling-file-name: "${LOG_FILE}.%d{yyyy-MM-dd}.%i"
或者如果您使用的是 application.properties
,它应该是(免责声明:我没有测试过这个,因为我只使用 YAML 文件):
logging.pattern.rolling-file-name = ${LOG_FILE}.%d{yyyy-MM-dd}.%i