Trabajo relacionado con Java

8 de febrero de 2010

Log4j 2 appenders 2 thresholds

Archivado en: Desarrollo,java — jansoblog @ 1:21 pm
Tags: , , , ,

¿Cómo tener dos appenders cada uno con un nivel diferente en log4j?   

En el rootLogger se define el nivel de log general para todos los appenders y en cada appender se puede indicar con la propiedad threshold el límite mínimo para el nivel de log de ese appender.


log4j.rootLogger=DEBUG, stdout, file

# ***** stdout appender para la consola

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=APL: %d{dd MMM yyyy HH:mm:ss} %-5p %c – %m%n

log4j.appender.stdout.threshold = INFO

# ***** file appender a un fichero

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=apl.log

log4j.appender.file.MaxFileSize=200KB

log4j.appender.file.MaxBackupIndex=10

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=APL: %d{dd MMM yyyy HH:mm:ss} %-5p %c – %m%n


Eso es todo. :)

Advertisement

2 comentarios »

  1. Hola. Yo estoy teniendo problemas a la hora de configurar el fichero donde escribir el log.

    mi fichero:

    log4j.rootLogger=INFO, myConsoleAppender, Fichero

    log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender
    log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.myConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x – %m%n

    log4j.appender.Fichero=org.apache.log4j.RollingFileAppender
    log4j.appender.Fichero.File=/logs/milog.log

    log4j.appender.Fichero.layout=org.apache.log4j.PatternLayout
    log4j.appender.Fichero.MaxFileSize=500KB
    log4j.appender.Fichero.MaxBackupIndex=10
    log4j.appender.Fichero.layout.ConversionPattern=%-4r [%t] %-5p %c %x – %m%n

    Mi estructura web es algo asi
    WebContent
    WEB-INF
    logs
    En logs quiero generar mi fichero:

    He probado con
    WEB-INF/logs/milog.log
    /logs/milog.log
    ./logs/milog.log

    Si le pongo la ruta exacta tipo
    C:/tomcat50/…./milog.log
    funciona perfectamente, con lo que creo que el resto del código esta bien.

    Alguna sugerencia por favor, no se me ocurre que mas hacer.

    Gracias.
    David.

    Comentario por David — 15 de abril de 2010 @ 10:40 pm | Responder

    • Hola David,

      Dos cosas:

        Las rutas de ficheros relativas como has descubierto son un problema
        Usar WEB-INF/logs como directorio de log tampoco es recomendable

      1. Rutas relativas
      Supongamos que configuras log4j.appender.Fichero.File=logs/milog.log
      La ruta real depende de como hayas arrancado el servidor:

        Como un servicio : La ruta será algo como C:/windows/System32/logs/milog.log
        Con startup.bat : La ruta será algo como C:/tomcat50/bin/logs/milog.log

      También tienes que tener en cuenta que según el servidor de aplicaciones y la manera de arrancarlo, las rutas pueden ser muy diferentes.

      2. Usar WEB-INF como direcotio para los logs
      Ten en cuenta que tu aplicación y sus logs son dos cosas diferentes y deberían estar separadas.
      Imagina que un día tienes que instalar esa misma aplicación en otro sitio para otro cliente, en ese caso tendrías que borrar los logs.

      Comentario por jansoblog — 22 de abril de 2010 @ 5:36 pm | Responder


RSS feed para los comentarios de esta entrada. URI para TrackBack.

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Theme: Rubric. Blog de WordPress.com.

Seguir

Get every new post delivered to your Inbox.