jeudi 10 juin 2010

java : astuces configuration log4j

un petit rappel issue du site apache pour parametrer log4j via des parametres en ligne de commandes :

ici un exemple pour choisir le niveau de logs et un fichier de configuration ... via une variable d'environnement.

ça peut toujours être pratique.

ici, le fichier sera recherché dans le WEB-INF/classes
export TOMCAT_OPTS="-Dlog4j.debug -Dlog4j.configuration=foobar.xml"


ici, on ajoute une factory :
set TOMCAT_OPTS=-Dlog4j.configuration=foobar.lcf -Dlog4j.configuratorClass=com.foo.BarConfigurator


ici, un chemin complet Windows c:/foobar.properties
set TOMCAT_OPTS=-Dlog4j.configuration=file:/c:/foobar.properties


ici, avec la servlet d'init et un parametre :


package com.foo;

import org.apache.log4j.PropertyConfigurator;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.io.IOException;

public class Log4jInit extends HttpServlet {

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 le web.xml

<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.foo.Log4jInit</servlet-class>

<init-param>
<param-name>log4j-init-file</param-name>
<param-value>WEB-INF/classes/log4j.lcf</param-value>
</init-param>

<load-on-startup>1</load-on-startup>
</servlet>

Aucun commentaire:

Enregistrer un commentaire