venerdì 10 aprile 2009

Configurazione log4j per tomcat

Scaricare il jar di log4j dal sito di Apache e includerlo nella webapp.

Scrivere il file di configurazione log4.properties, del tipo:

#LOGGER
log4j.rootCategory=DEBUG, APPENDER_CONSOLE, APPENDER_FILE

#APPENDER_OUT
log4j.appender.APPENDER_CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.APPENDER_CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.APPENDER_CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

#APPENDER_FILE
log4j.appender.APPENDER_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.APPENDER_FILE.File=c:/mioLog.log
log4j.appender.APPENDER_FILE.MaxFileSize=500KB
log4j.appender.APPENDER_FILE.MaxBackupIndex=10
log4j.appender.APPENDER_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.APPENDER_FILE.layout.ConversionPattern=%p %t %c - %m%n


in cui imposto i console e file appender per il livello di debug.

In http://logging.apache.org/log4j/1.2/manual.html è descritta la seguente configurazione
Imposto la servlet di inizializzazione di log4j:

package it.flavio.ldap;

import org.apache.log4j.PropertyConfigurator;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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);
PropertyConfigurator.configure("c:\\log4j.properties");
}
}

public
void doGet(HttpServletRequest req, HttpServletResponse res) {
}
}



e quindi aggiungo a web.xml il seguente mapping per fare eseguire questa servlet all'inizio dell'applicazione:


<>
<> log4j-init< / servlet-name >
<>it.flavio.ldap< /servlet-class >

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

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



  
Ora le impostazioni per il logging sono configurate, per generare i file di log è sufficiente aggiungere la riga:

Logger log = Logger.getLogger(Log4jInit.class);

nelle classi in cui vogliamo fare logging coi metodi log.debug, log.error ecc..


Nessun commento: