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