当前位置: 首页 > 知识库问答 >
问题:

如何强制spring不压缩日志文件,而是在日志文件末尾附加日期

阙庆
2023-03-14

目前我正在使用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格式,就像logT一样est.log.2019-06-14.0.gz

如何排除默认的拉链?

我不想在xml文件中硬连线配置并将其放在资源文件夹中。我只能将滚动appender配置xml文件,但我想在属性文件中创建日志文件路径,这样我就可以为不同的环境动态设置它。

有没有办法实现这种配置?

共有2个答案

詹亮
2023-03-14

创建一个logback spring。src/main/resources中的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将不会压缩文件。

乌骏
2023-03-14

作为@simon martinelli正确答案的替代方案,如果您不希望使用定制的logback spring。xml文件,Spring配置参数日志记录。图案滚动文件名可以在应用程序中设置。属性应用程序。yml文件。

例如,要禁用所使用的压缩,请从默认文件名模式中删除. gz后缀(${LOG_FILE}.%d{yyy-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"

或者如果您正在使用应用程序。属性,应该是(免责声明:我没有测试这个,因为我只使用YAML文件):

logging.pattern.rolling-file-name = ${LOG_FILE}.%d{yyyy-MM-dd}.%i

 类似资料:
  • 问题内容: 我想在不阻塞或锁定的情况下在Python中提供tail -F或类似内容的输出。我在这里找到了一些非常老的代码来执行此操作,但是我认为现在必须有更好的方法或库来执行相同的操作。有人知道吗? 理想情况下,我希望每次需要更多数据时都可以打电话给我。 问题答案: 非阻塞 如果你使用的是Linux(因为Windows不支持在文件上调用select),则可以将subprocess模块​​与sele

  • 我使用下面的log4j2。xml 我想要的是旧的日志文件被删除,如果累积的大小超过。但是log4j2首先删除最近修改的文件。https://logging.apache.org/log4j/2.x/manual/appenders.html说有一个路径排序参数可以做到这一点。有人能告诉我如何指定相反的将逻辑排序为默认值?

  • 要有效地管理Web服务器,就有必要反馈服务器的活动、性能以及出现的问题。Apache HTTP服务器提供了非常全面而灵活的日志记录功能。本文将阐述如何配置文件以及如何理解日志内容。 安全警告 任何人只要对Apache存放日志文件的目录具有写权限,也就当然地可以获得启动Apache的用户(通常是root)的权限,绝对不要随意给予任何人存放日志文件目录的写权限。细节请参见安全方面的提示。 另外,日志文

  • Navicat 提供数个日志文件记录在 Navicat 已运行的动作,它们在子目录 logs,例如: C:\Users\Guest\Documents\Navicat\Premium\logs\。你可以在选项中改变日志文件的位置。 HttpDump.log 保存从你的 HTTP 服务器答复的数据。 LogHistory.txt 记录在 Navicat 数据库及数据库对象上全部已运行的作业上的全部

  • Navicat Monitor 日志文件具有各种服务器错误和信息的详细记录。这些文件可以帮助跟踪 Navicat Monitor 的任何问题。请按照以下步骤下载日志文件: 前往“ 配置”。 点击“关于”。 滚动到“诊断”部分。 点击“检索全部日志文件”以下载包含日志文件的一份 .zip 文件。

  • Navicat 提供数个日志文件记录在 Navicat 已执行的操作,它们位于“logs”目录,例如:C:\Users\Guest\Documents\Navicat\Premium\logs\。你可以在选项中更改日志文件的位置。 文件 描述 history.log 保存在 Navicat 数据库和数据库对象上所有已运行的操作的所有语句或脚本。若要在“历史日志查看器”打开 history.log