Estoy comenzando a desarrollar un plugin de Eclipse (técnicamente, un plugin de OSGi) y uno de los primeros problemas con los que me he encontrado es que parece que no puedo controlar la salida de registro de commons como Normalmente lo haría.Ingresando plugins de Eclipse/OSGi
He incluido el paquete de registro de commons en las dependencias del complemento, y de hecho, cuando registro algo (en INFO o mayor gravedad) se registra en la consola. Sin embargo, parece que no puedo iniciar sesión en ningún nivel inferior (como DEBUG o TRACE).
He especificado un archivo log4j.properties, y está en el classpath (para el tiempo de ejecución, al igual que el paquete common-logging) pero ninguna de las configuraciones en ese archivo de propiedades tiene ningún impacto en el comportamiento del registrador.
Aquí está el archivo log4j.properties:
# Log4j Logging levels, in order of decreasing importance are:
# FATAL, ERROR, WARN, INFO, DEBUG, TRACE
#
# Root logger option
log4j.rootLogger=ERROR,stdout
#,LOGFILE
# 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 %r (%l) %t%n - %m%n
¿Qué tengo que hacer para que realmente puedo controlar la salida del registrador?
Éstos son algunos de los mensajes de salida de la muestra, con la esperanza de que el formato puede coincidir con un valor predeterminado para java.util.logging, o proporcionar otros consejos a alguien:
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
SEVERE: fatal_message
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
WARNING: warn_message
Oct 21, 2008 11:01:23 PM com.stottlerhenke.sentinel.client.Activator start
INFO: info_message
Actualización:
Ahora he intentado varias combinaciones de:
- org.osgi.service.log.LogService et al.
- slf4j
- Log4J
- Commons-logging
- java.util.logging
y puedo única consigo DEBUG o inferiores, los mensajes de nivel a aparecer si estoy corriendo OSGi manualmente desde un indicador (que es poco práctico para lo que estoy desarrollando). Además, no puedo efectuar ningún otro tipo de configuración de registro a través de varios archivos de propiedades. Todo lo que intento en ese sentido parece ser anulado por una configuración de eclipse.
También intenté poner varios archivos de configuración para las bibliotecas anteriores en numerosos lugares, incluso como fragmentos de plug-in adjuntos a sus respectivas bibliotecas, como se sugiere here, y aún así, ocurre el mismo resultado.
he implementado un LogListener costumbre, y recorrió toda la ruta de un mensaje de registro (así que sé cómo, de todos modos) con System.out.println de, y los mensajes de depuración son presente justo hasta que son salida por cualquier API de registro subyacente que estoy usando, entonces desaparecen.
@rcreswick puede usted por favor hágamelo saber dónde tiene colocaste el archivo log4j.properties en el complemento – VamsiKrishna