Configuration log4j.xml - console et fileAppender
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:
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:
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:
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:
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 ;)