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 : 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>
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
 
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 !