我有以下兩個包:使用Log4J 1. *,我怎麼能寫兩個包到兩個單獨的文件?
com.mycorp.project.first
com.mycorp.project.second
我想配置Log4j(SLF4J)從一個包寫入日誌到一個文件,從另一個包到第二個文件。我不希望他們混在一起。
要清楚,這是一個項目/一個進程運行。
我已經嘗試過濾和記錄器,但他們似乎被log4j忽略。這兩個文件總是相同的。
編輯:謝謝你到目前爲止的答案,這是我得到的,它不工作。兩個輸出文件都是相同的。
<configuration debug="true">
<contextName>dev</contextName>
<appender name="FIRST_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>A:/dev/LogTesting/logs/first.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>A:/dev/LogTesting/logs/first.%d{yyyyMMdd}%d{_HHmmss,aux}.log.gz</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{MMM dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="SECOND_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>A:/dev/LogTesting/logs/second.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>A:/dev/LogTesting/logs/second.%d{yyyyMMdd}%d{_HHmmss,aux}.log.gz</fileNamePattern>
</rollingPolicy>
<encoder>
<Pattern>%d{MMM dd HH:mm:ss.SSS} %property{HOSTNAME} [%thread] %level %logger{36} %msg%n</Pattern>
</encoder>
</appender>
<!-- =============================================================== -->
<logger name="com.test.apples" additivity="false">
<level value="DEBUG" />
<appender-ref ref="FIRST_FILE" />
</logger>
<logger name="com.test.oranges" additivity="false">
<level value="DEBUG" />
<appender-ref ref="SECOND_FILE" />
</logger>
<!-- =============================================================== -->
<category name="com.test.apples" additivity="false">
<priority value="DEBUG"/>
<appender-ref ref="FIRST_FILE"/>
</category>
<category name="com.test.oranges" additivity="false">
<priority value="DEBUG"/>
<appender-ref ref="SECOND_FILE"/>
</category>
<!-- =============================================================== -->
<!-- default -->
<root level="WARN">
<appender-ref ref="FIRST_FILE" />
<appender-ref ref="SECOND_FILE" />
</root>
對不起,我忘了提及我有一個xml配置文件。這在xml中有什麼相同之處? log4j.logger.com.mycorp.project.first = DEBUG,FIRST – Csaba
查看我的更新回答。願它對你的朋友有用! –
我對此有兩個問題: 1.如果appenders之間的差異僅僅是文件名,是否有一種方法可以定義一次通用屬性(XML)以避免冗餘? 2.是否可以將一個記錄器映射到多個包? – clicky