0
使用log4j的,我可以登錄到不同的文件調用此方法:log4j的VS log4j2:登錄到不同的文件
Logger.getLogger("test")
其中test是在log4j.properties定義一個appender。我如何使用log4j2登錄到不同的文件?這是我的配置文件和我會編程選擇在哪裏登錄:
<Properties>
<Property name="log-path">C:/logs</Property>
</Properties>
<Loggers>
<Logger name="it.mypackage" level="debug" additivity="false">
<appender-ref ref="file" level="debug" />
<appender-ref ref="file2" level="error" />
</Logger>
</Loggers>
<Appenders>
<!-- file.log -->
<RollingFile name="file" fileName="${log-path}/file.log" filePattern="${log-path}/file-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
<!-- file2.log -->
<RollingFile name="file2" fileName="${log-path}/file2.log" filePattern="${log-path}/file2-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
</Appenders>
[解決方法] 哦,是的,我失去了一個記錄:
<Properties>
<Property name="log-path">C:/logs</Property>
</Properties>
<Loggers>
<Logger name="logger1" level="debug" additivity="false">
<appender-ref ref="file" level="debug" />
</Logger>
<Logger name="logger2" level="debug" additivity="false">
<appender-ref ref="file" level="debug" />
<appender-ref ref="file2" level="error" />
</Logger>
</Loggers>
<Appenders>
<!-- file.log -->
<RollingFile name="file" fileName="${log-path}/file.log" filePattern="${log-path}/file-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
<!-- file2.log -->
<RollingFile name="file2" fileName="${log-path}/file2.log" filePattern="${log-path}/file2-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
</RollingFile>
</Appenders>
我可以這樣選擇記錄器:
private static Logger logger = LogManager.getLogger("logger1");
你只有一個記錄器...所以沒有選擇真的...我錯過了什麼嗎? – Fildor
我想你可以在這裏找到所有答案:https://logging.apache.org/log4j/2.0/faq.html –