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
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>
une servlet Log4jInit
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) {
 
	}
}
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
 
<?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>
et l'usage que j'en fais
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");
Cela marche en console, mais je n'ai rien dans mon fichier de log.
Si quelqu'un voit le problème, je suis à l'écoute.

Merci