ho i seguenti due pacchetti:Utilizzo di Log4J 1. *, come posso scrivere due pacchetti su due file separati?
com.mycorp.project.first
com.mycorp.project.second
Mi piacerebbe configurare Log4J (SLF4J) per scrivere i log da un unico pacchetto in un file e dall'altro pacchetto in un secondo file. Non voglio che vengano mischiati insieme.
Per essere chiari, questo è un progetto/un processo in esecuzione.
Ho provato a filtrare e con i logger ma sembrano ignorati da log4j. Entrambi i file sono sempre identici.
Modifica: Grazie per le risposte finora, questo è quello che ho e non funziona. Entrambi i file di output sono identici.
<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>
Siamo spiacenti, ho dimenticato di dire che ho un file di configurazione XML. Qual è l'equivalente di questo in xml? log4j.logger.com.mycorp.project.first = DEBUG, FIRST – Csaba
Vedere la mia risposta aggiornata. Possa utile per te amico! –
Ho due domande al riguardo: 1. Se la differenza tra gli appenders è solo il nome del file, c'è un modo per definire le proprietà comuni una volta (XML) per evitare la ridondanza? 2. È possibile mappare un registratore su più pacchetti? – clicky