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:
Et dans l'une des classes Java, je voudrais faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Malheureusement, ça ne marche pas du tout !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 } }
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 !
Partager