我在两个单独的包中分别有两个类 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>