log4j2, choisir le fichier de log
Bonjour,
J'essaye de configurer log4j2 (avec jdk8 et tomcat8) afin de pouvoir initialiser 2 loggers au démarrage, et ensuite dans chaque classe, pouvoir choisir et logger dans tel ou tel fichier suivant le besoin.
Voilà mon fichier log4j2.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="stdout" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<RollingFile name="rootAppender" fileName="${sys:catalina.base}/logs/myProject/rootLogger.log"
filePattern="${sys:catalina.base}/logs/myProject/$${date:yyyy-MM}/rootLogger_%d{dd-MM-yyyy}_%i.log">
<PatternLayout pattern="%d{dd/MM/yyy HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<RollingFile name="appender_functionality_1" fileName="${sys:catalina.base}/logs/myProject/logger_functionality_1.log"
filePattern="${sys:catalina.base}/logs/myProject/$${date:yyyy-MM}/logger_functionality_1_%d{dd-MM-yyyy}_%i.log">
<PatternLayout pattern="%d{dd/MM/yyy HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<RollingFile name="appender_functionality_2" fileName="${sys:catalina.base}/logs/myProject/logger_functionality_2.log"
filePattern="${sys:catalina.base}/logs/myProject/$${date:yyyy-MM}/logger_functionality_2_%d{dd-MM-yyyy}_%i.log">
<PatternLayout pattern="%d{dd/MM/yyy HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="ALL">
<AppenderRef ref="stdout" level="ALL"/>
<AppenderRef ref="rootAppender" level="ALL"/>
</Root>
<logger name="logger_functionality_1" additivity="false" level="ALL">
<AppenderRef ref="appender_functionality_1" level="ALL"/>
</logger>
<logger name="logger_functionality_2" additivity="false" level="ALL">
<AppenderRef ref="stdout" level="ALL"/>
<AppenderRef ref="appender_functionality_2" level="ALL"/>
</logger>
</Loggers>
</Configuration> |
Et dans l'une des classes Java, je voudrais faire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.slf4j.LoggerFactory;
public class TestClass {
private static final Logger logger1= LogManager.getLogger("logger_functionality_1");
private static final Logger logger2 = LogManager.getLogger("logger_functionality_2");
public static void main(String[] args) {
logger1.info("usecase1"); // doit ecrire dans mon 1er fichier de log logger_functionality_1.log
logger2.info("usecase2"); // doit ecrire dans mon 2eme fichier de log logger_functionality_2.log
}
} |
Malheureusement, ça ne marche pas du tout !!!
Lorsque je lance la classe, il me dit qu'il n'arrive pas à initialiser mes loggers et il ne logge rien du tout !
Qu'est-ce que je ne fais pas correctement ??
Merci d'avance pour votre aide !