Log4j2从appender创建其他文件

时间:2013-10-09 10:11:06

标签: logging log4j log4j2

我在两个独立的包中分别有两个类MyClass1和MyClass2,分别是package1和package2。这些类旨在单独使用,不会跨包进行交互。

现在,对于日志记录,我在log4j2配置中配置了两个FastFileAppender(每个都写入MyClass1.log和MyClass2.log)。我有两个记录器(名称= package1和package2),每个记录器都引用自己的文件appender。 我面临的问题是,如果我运行MyClass1,那么记录器会创建两个日志文件(其中一个是MyClass2.log)为空。

有没有办法告诉管理器只实例化使用过的appender,这样就不会创建额外的空文件?

下面是我的log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <FastFile name="file1" fileName="MyClass1.log" append="false">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </FastFile>
        <FastFile name="file2" fileName="MyClass2.log" append="false">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </FastFile>
    </appenders>
    <loggers>
        <root level="INFO">
            <appender-ref ref="Console" />
        </root>
        <logger name="package1" level="TRACE"
            additivity="false">
            <appender-ref ref="Console" level="INFO" />
            <appender-ref ref="file1" level="TRACE" />
        </logger>
        <logger name="package2" level="TRACE"
            additivity="false">
            <appender-ref ref="Console" level="INFO" />
            <appender-ref ref="file2" level="TRACE" />
        </logger>
    </loggers>
</configuration>

0 个答案:

没有答案