【问题标题】:log4j2 multiple files createdlog4j2 创建了多个文件
【发布时间】:2016-07-30 20:19:12
【问题描述】:

我正在尝试使用这样的 log4j2.xml 配置我的记录器

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <RollingFile name="RollingFile"  append="true" fileName="logger1"
                              filePattern="logger1_%d{yyyy-MM-dd}.log">     
        <PatternLayout pattern="[%tid] [%X{id}] %d{HH:mm:ss,SSS} %5p - %m%n"/>
        <Policies>              
            <TimeBasedTriggeringPolicy />
         </Policies>
    </RollingFile>
    <RollingFile name="RollingFile2" append="true" fileName="logger2"   
                             filePattern="logger2_%d{yyyy-MM-dd}.log">      
        <PatternLayout pattern="[%tid] [%X{id}] %d{HH:mm:ss,SSS} %5p - %m%n"/>
        <Policies>              
            <TimeBasedTriggeringPolicy />
         </Policies>
    </RollingFile>
    <Console name="IDE-Console" target="SYSTEM_OUT">
        <PatternLayout pattern="[%tid] [%X{id}] %d{HH:mm:ss,SSS} %5p - %m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="logger1" level="info">
      <AppenderRef ref="RollingFile"/>
    </Logger>
    <Logger name="logger2" level="info" additivity="false">
      <AppenderRef ref="RollingFile2"/>
    </Logger>
    <Root level="info" >
      <AppenderRef ref="IDE-Console"/>
    </Root>
  </Loggers>
</Configuration>

问题在于创建了两个文件,而我认为它应该是一个。

其实在我调用之后

LoggerContext.getContext(this.getClass().getClassLoader(), false, file.toURI());

log4j2 创建两个文件:logger{1,2}

然后我可以按名称获取正确的记录器并开始记录到正确的文件,并在我的应用程序文件夹中创建一个我不想创建的额外文件。 它实际上限制了我将此文件分发到只需要一个记录器的所有应用程序。我想使用

getLogger(String loggerName)

你可以管理你写入的文件。

任何想法如何解决它?

提前致谢。

【问题讨论】:

    标签: logging log4j log4j2


    【解决方案1】:

    文件附加器将始终在 Log4j 初始化时创建文件。因此,如果您配置两个文件附加程序,您将获得两个文件。您看到的行为是预期的行为。

    可以使用 RoutingAppender 按需动态创建日志文件。这要求您的应用程序使用 ThreadContext。常见问题页面有一个示例配置说明如何执行此操作:https://logging.apache.org/log4j/2.x/faq.html#separate_log_files

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-06
      • 2023-03-26
      • 1970-01-01
      • 2022-06-11
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多