Foros del Web » Programación para mayores de 30 ;) » Java »

Log4j - filtrar logs por niveles. (log4j.properties)

Estas en el tema de Log4j - filtrar logs por niveles. (log4j.properties) en el foro de Java en Foros del Web. Buenas gente, hasta ahora eh podido hacer todo lo que me he propuesto con log4j sin mucha ayuda(como veran en los post anteriores), pero bueno ...
  #1 (permalink)  
Antiguo 25/11/2011, 07:15
 
Fecha de Ingreso: febrero-2008
Mensajes: 42
Antigüedad: 16 años, 9 meses
Puntos: 0
Pregunta Log4j - filtrar logs por niveles. (log4j.properties)

Buenas gente, hasta ahora eh podido hacer todo lo que me he propuesto con log4j sin mucha ayuda(como veran en los post anteriores), pero bueno recurro a ustedes como la opcion rapida, por si alguien me comparte sus conocimientos y me ayuda a salir rapido..

Antes que nada me gustaria saber de algun buen tutorial, algo que abarque bastante de las utilidades pero con practica.. no tanta teoria!.. si saben algo, se los agradesco!.

Bueno, les comento este es mi archivo de propiedades para log4j.

Código:
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${rootPath}WEB-INF/logs/TestLogs.log
#log4j.appender.CONSOLE.File = ${rootPath}WEB-INF/logs/TestLogs.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
 
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
 
# Root logger option
log4j.rootLogger=debug, file, stdout, jms

## Be sure that ActiveMQ messages are not logged to 'jms' appender
log4j.logger.org.apache.activemq=INFO, stdout

## Configure 'jms' appender. You'll also need
## jndi.properties file in order to make it work
log4j.appender.jms=org.apache.log4j.net.JMSAppender
log4j.appender.jms.InitialContextFactoryName=org.apache.activemq.jndi.ActiveMQInitialContextFactory
log4j.appender.jms.ProviderURL=tcp://localhost:61616
log4j.appender.jms.TopicBindingName=logTopic
log4j.appender.jms.TopicConnectionFactoryBindingName=ConnectionFactory
Bueno, esto funciona bien.. pero lo que quiciera hacer ahora es filtrar los logs, es decir, me gustaria solo enviar los logs de nivel "INFO" en el "log4j.appender.file" o solo los DEBUG o de repento solo logear los ERRORES en el caso del appender de jms.

Alguien sabe como??

Saludos y gracias de ante mano!
  #2 (permalink)  
Antiguo 25/11/2011, 11:02
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Log4j - filtrar logs por niveles. (log4j.properties)

El mejor tutorial de log4j que he visto

http://www.javatutoriales.com/2011/0...os-de-log.html

Tendrás que usar el log4j.xml, LevelToMatch y DenyAllFilter. En el tutorial viene perfectamente explicado.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 16/12/2011, 12:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 42
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Log4j - filtrar logs por niveles. (log4j.properties)

Gente ya logre configurar log4j como queria. Nunca publique la respuesta final por si a alguien le interesa.

Código:
log4j.rootLogger=DEBUG, stdout, jms, file

## Be sure that ActiveMQ messages are not logged to 'jms' appender
log4j.logger.org.apache.activemq=INFO

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${rootPath}/WEB-INF/logs/TestLogs.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

## Configure 'jms' appender. You'll also need jndi.properties file in order to make it work
log4j.appender.jms=org.apache.log4j.net.JMSAppender
log4j.appender.jms.InitialContextFactoryName=org.apache.activemq.jndi.ActiveMQInitialContextFactory
log4j.appender.jms.ProviderURL=tcp://localhost:61616
log4j.appender.jms.TopicBindingName=logTopic
log4j.appender.jms.TopicConnectionFactoryBindingName=ConnectionFactory
log4j.appender.jms.Threshold=ERROR
con "log4j.appender.jms.Threshold=ERROR" limito solo los mensajes de nivel ERROR. Y para que funcione correctamente hay que asegurarse no enviar logs del Debug level al appender del jms, por lo que "log4j.logger.org.apache.activemq=INFO". Con esto tengo todo funcionand.

Saludos.

Saludos

Etiquetas: filtrar, log4j, logs, niveles
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:29.