Salut,
J'essaie de configurer mes logs avec log4j. Je voudrais dans un premier temps une sortie console, et une autre dans un fichier log
Pour ce faire, j'ai déclaré dans mon web.xml
une servlet Log4jInit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11<servlet> <servlet-name>log4j-init</servlet-name> <servlet-class>com.test.servlets.Log4jInit</servlet-class> <init-param> <param-name>log4j-init-file</param-name> <param-value>WEB-INF/classes/log4j.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
Mon log4j.xml ressemble à
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 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.PropertyConfigurator; public class Log4jInit extends HttpServlet { /** * serialVersionUID */ private static final long serialVersionUID = -5229377874794556432L; public void init() { String prefix = getServletContext().getRealPath("/"); String file = getInitParameter("log4j-init-file"); // if the log4j-init-file is not set, then no point in trying if(file != null) { PropertyConfigurator.configure(prefix+file); } } public void doGet(HttpServletRequest req, HttpServletResponse res) { } }
et l'usage que j'en fais
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 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="CA" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" /> </layout> </appender> <appender name="FA" class="org.apache.log4j.FileAppender"> <param name="File" value="c:\sample.log"/> <param name="Threshold" value="WARN"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="CA" /> <appender-ref ref="FA" /> </root> </log4j:configuration>
Cela marche en console, mais je n'ai rien dans mon fichier de log.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private static Logger logger = Logger.getLogger(Language.class); logger.debug("Sample debug message"); logger.info("Sample info message"); logger.warn("Sample warn message");
Si quelqu'un voit le problème, je suis à l'écoute.
Merci
Partager