rootcategory - logger log4j java
log4j configuracion basica (6)
1) Encuentre su appender, debería tener algo como esto en su archivo de configuración log4j.xml.
<appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="C:/logs/rmDebug.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="1500KB"/>
<param name="MaxBackupIndex" value="2"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="**FOOBAR** %d{dd.MM.yyyy HH:mm:ss} %c %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
¿Ves el valor de levelMin y LevelMax? levelMin es donde empiezas a registrar, y levelMax, donde dejas de iniciar sesión. (con este appender específico). Puedes tener varios appender.
Luego, para asignar este appender a una clase o paquete. Puedes hacer algo así:
<category name="com.foobar.automation.doremiResourceManager" additivity="true">
<appender-ref ref="DEBUG"/>
</category>
Utilicé log4j para registrar algunos pasos en mi aplicación. Para ser rápido y sucio, utilicé:
org.apache.log4j.BasicConfigurator.configure();
Esto dio salida a mis registros en la consola de Eclipse.
¿Quiero saber si y cómo establecer el umbral de nivel superior a DEBUG? En otras palabras, no quiero mostrar el mensaje de nivel DEBUG, solo ERR, WARN, INFO.
Gracias.
EDITAR: ¿ Puedo usar esto siguiente?
import org.apache.log4j.Logger;
import org.apache.log4j.Level;
[...]
Logger logger = Logger.getLogger(this.class);
logger.setLevel(Level.INFO);
Creo que la forma más sencilla sería:
Logger.getRootLogger().setLevel(Level.INFO);
Lo que BasicConfigurator.configure () hace es agregar el registrador raíz a un ConsoleAppender y establecer el diseño del appender en un PatternLayout con el patrón "% r [% t]% -5p% c -% m% n". Así que necesitas configurar el nivel del logger raíz. Si solo establece el nivel del registrador de esta clase, el nivel del registrador raíz no se modifica, entonces todos los demás registradores (excepto los de esta clase) pueden seguir utilizando el nivel del registrador raíz, por lo que aún verá los registros no deseados.
Si no está configurando dentro del archivo de propiedades, use esto:
Logger root = Logger.getRootLogger();
root.setLevel(Level.INFO);
root.addAppender(new ConsoleAppender(
new PatternLayout(PatternLayout.TTCC_CONVERSION_PATTERN)));
Suponiendo que está llamando a BasicConfigurator.configure () antes de llamar a cualquier registrador:
Puedes usar cualquiera de estos archivos de configuración para cambiarlo sin volver a compilar:
log4j.properties
log4j.rootLogger=INFO
log4j.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<root>
<priority value="INFO"/>
</root>
</log4j:configuration>
Uno de estos debe estar en la línea de comando.
org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.INFO);