当前,我正在使用Spring Boot日志,并且正在通过属性文件进行配置 下面是示例日志记录属性
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文件,但是我想在属性文件中创建日志记录文件路径,因此可以针对不同的环境动态设置它。
有什么办法可以实现这种配置?
答案 0 :(得分:1)
在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将不会压缩文件。
答案 1 :(得分:0)
作为@ simon-martinelli正确答案的替代方法,如果您不希望使用自定义logback-spring.xml
文件,则可以在logging.pattern.rolling-file-name
中设置Spring配置参数application.properties
或application.yml
文件。
例如,要禁用所使用的压缩,请从默认文件名模式(按照https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-custom-log-configuration按照.gz
)中删除${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
后缀。
这将需要在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