2

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

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

有没有办法告诉经理只实例化使用的附加程序,这样它就不会创建额外的空文件?

下面是我的 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>
4

0 回答 0