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

当添加器从未被使用时,我想要的日志文件不创建。[RollingFileAppender]

蒋寒
2023-03-14

我正在为我的应用程序创建一个日志通用配置文件。我在其中定义了一个RollingFileAppender,它为我的所有appli在一个文件中生成相同的日志格式(如果我们需要的话)。有时我想使用这个附加器,有时不使用(例如,当我们测试时)。

  • logback-common.xml>>带有所有附加程序定义(文件和公共)appli_one
  • 资源/logback.xml>>调用logback-common和config/logback-{profile}.xml
  • resources/config/logback-{profile}.xml>>特定的appli/profile日志配置。

要进行配置,可以在logback-{profile}.xml中进行

    <root level="WARN">
    <appender-ref ref="FILE"/> <!-- For File Log when we need it -->
    <appender-ref ref="CONSOLE"/>
    </root>


    <root level="WARN">
    <!-- <appender-ref ref="FILE"/> --> <!-- in comment when we do not need if > BUT create a empty file -->
    <appender-ref ref="CONSOLE"/>
    </root>

logback-common.xml

    <included>
    <!-- The FILE and ASYNC appenders are here as examples for a production
        configuration -->
    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>log/${spring.application.name}.log</file>
        <rollingPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>
                log/${spring.application.name}.%d{yyyy-MM-dd}.%i.log.zip
            </fileNamePattern>
            <maxHistory>90</maxHistory>
            <maxFileSize>10MB</maxFileSize>
        </rollingPolicy>
        <encoder>
            <charset>utf-8</charset>
            <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
        </encoder>
    </appender>


    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>"%d{yyyy-MM-dd} [%thread] %-5level %45logger{45} - %msg%n"</pattern>
        </encoder>
    </appender>

    </included>
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration scan="true" packagingData="true">

        <property name="spring_profiles_active" value="${spring.profiles.active}" />

        <property resource="application.properties"/>

        <include resource="config/log/logback-common.xml"/>
        <include resource="config/log/logback-${spring_profiles_active}.xml"/>
    </configuration>

共有1个答案

蓬弘
2023-03-14

不是logback的核心功能,但有实现惰性文件初始化的变通方法。

请参阅此处的更多信息Logback-启动时不要创建空日志文件

 类似资料:
  • 我想设置日志级别、文件名和日志文件的文件路径。我找到了一种方法来实现这一点,除了log4j创建一个附加的日志文件外,其他方法都可以实现。我得到了下面的log4j2。xml: 在我的主函数中,我设置了${sys:logDir}和${sys:logFilename}: 它像我想要的那样工作,但是log4j在我的主项目路径中创建了一个名为“${sys:logDir}${sys:logFilename}”

  • DailyRollingFileAppender没有创建每日备份日志文件。 我正在使用下面的配置,它在我的本地机器上工作,但在部署项目的机器上不工作。 框架——SpringMVC 我无法理解配置的哪个部分正在阻塞DailRollingFileAppender,以便在我的服务器上创建日期日志。 编辑- 我根据建议更新了我的文件,但在第二天上午12点,它不会创建新的备份文件。意味着它更新了AppLog

  • 问题内容: 我正在尝试配置log4j以将消息记录到文件中。现在,确实使用我提供的名称创建了该文件,但是日志未写入该文件。我的代码: 我文件的内容: 运行此命令时,将在控制台中获得以下输出: 该文件确实在我的主目录中创建。但是它是空的。 有什么想法我做错了吗?我正在使用log4j 1.2.17版。 问题答案: 输出似乎是Java标准日志记录框架(JUL)发出的默认格式。 因此,有两种可能性(想到):

  • 我不清楚java程序是如何知道xml文件的位置的。我想这就是问题所在。这就是我在代码中的设置, 任何帮助都是徒劳的。谢了。

  • 我正在使用带有log4j2的Spring Boot1.5.9,当我测试日志记录功能时,创建了日志文件,但没有将日志写入其中,而控制台日志记录程序运行良好。请在pom.xml&log4j2.properties配置下面找到。 log4j2.properties文件:

  • 我正在尝试将一个值设置为MDC,以便在有日志的情况下显示在每个日志行中。如果kafka producer中有info(“”),那么日志就不会显示我之前为MDC添加的值。 我有一个拦截器来为correlationId设置“默认值” 我设置了 MDC 相关 Id 值,当它进入控制器时。 仅用于Kafka日志不包括之前添加的 MDC 消息 2022-06-08 10:15:31.616 INFO { c