jump to navigation

Escribir los mensajes de trazas con Log4J abril 24, 2007

Posted by superpiwi in Eclipse, Java, Programacion.
trackback

En biese me encuentro un articulo muy interesante de como escribir los mensajes de trazas de nuestra aplicacion en el fichero de log de Jboss.Yo ahora mismo no tengo Jboss instalado, asi que adapto un poco el fichero xml para que me funcione de manera independiente.

Tambien me añado al claspath las siguientes librerias:


commons-logging.jar
commons-logging-1.0.4.jar
log4j-1.2.12.jar

El fichero log4j generalemente es un fichero plano de texto (log4j.properties), aqui empleamos un fichero en formato XML.  

Los ficheros quedan como siguen:

log4j.xml:


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<!-- A size based file rolling appender -->
<appender name="FILE"
class="org.apache.log4j.RollingFileAppender">
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />
<param name="File" value="${jboss.server.home.dir}/tmp/log/server.log"/>
<param name="Append" value="false" />
<param name="MaxFileSize" value="20000KB" />
<param name="MaxBackupIndex" value="400" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d | %-5r | %-5p | %c | %t:%x | %m%n"/>
</layout>
</appender>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<!--
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-->
<param name="Target" value="System.out"/>
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
</appender>
<!-- your own log message -->
<appender name="APPLOG"
class="org.apache.log4j.RollingFileAppender">
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />
<param name="File" value="${jboss.server.home.dir}/tmp/log/myapp/application.log"/>
<param name="Append" value="false" />
<param name="MaxFileSize" value="20000KB" />
<param name="MaxBackupIndex" value="400" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d | %-5r | %t | %m%n"/>
</layout>
</appender>
<!-- your looger -->
<logger name="com.me.ApplicationLogger" additivity="false">
<!--
<priority value="INFO" />
-->
<appender-ref ref="APPLOG" />
<appender-ref ref="CONSOLE" />
</logger>
<!-- Setup the root logger -->
<root>
<priority value="DEBUG" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>

ApplicationLogger.java:


package com.me;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ApplicationLogger {
public static Log getLogger(){
return LogFactory.getLog(ApplicationLogger.class);
}
}

WithdrawInterface.java:


package com.me;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class WithdrawInterface {
public void withdraw(String user, double amount) {
Log appLogger = ApplicationLogger.getLogger();
appLogger.info("withdraw: " + user + " ;" + amount);
}
//----
public static void main(String[] args) {
try
{
WithdrawInterface wd=new WithdrawInterface();
wd.withdraw("root", 1000.02);
} catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
}
}
//----
}

Y el resultado de ejecutarlo desde Eclipse:

eclipse01.jpg

Comentarios»

1. Carlos Cotelo - junio 22, 2007

Esto para mi no funciona, hay que hacer algún cambio más en la configuración del jboss ó algo así, yo realizo todo lo que considero necesario en mi aplicación web, como es configurar el listener en el web.xml y después la correcta configuración del log4j.xml, y lo único que hace es crear un fichero, pero no escribir nada en él.

2. superpiwi - junio 25, 2007

Para Jboss yo no lo he probado. Aunque en la web comentan que si les funciona. Yo lo he adaptado para ser ejecutado de manera independiente. Es lo que muestro en la imagen. Si tengo tiempo (aunque realmente ando mas bien escaso ultimamente) puedo intentar mirarlo en jboss. Me lo anoto en el TODO: tengo tambien pendiente revisar la instalacion de Oracle, y escribir trazas de log con PLSQL y sqlplus (que me comento un lector previo). Lastima, que los dias solo tengan 24 horas… De todas formas intenta probar mi ejemplo, creo que se podria usar en jboss tambien de manera independiente.

3. nora gisela - junio 5, 2008

ayuuuuuuuuuuuuuudaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
nose como crear el appender

4. Jose Luis - marzo 19, 2009

Hola nora, te dejo la manera de como crear un apender en un archivo *.xml

y para un archivo de propiedades:

log4j.appender.archivo=org.apache.log4j.FileAppender
log4j.appender.archivo.File=prueba.log
log4j.appender.archivo.layout=org.apache.log4j.PatternLayout
log4j.appender.archivo.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L – %m%n

### Root logger ###
### Colocamos los niveles de logger al appender archivo
log4j.rootLogger=info, archivo

5. Jose Luis - marzo 19, 2009

Huy creo que el xml no se ve


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: