log4j - Configuración
El capítulo anterior explicó los componentes centrales de log4j. Este capítulo explica cómo configurar los componentes principales mediante un archivo de configuración. La configuración de log4j implica asignar el nivel, definir el appender y especificar los objetos de diseño en un archivo de configuración.
los log4j.propertiesEl archivo es un archivo de configuración log4j que mantiene las propiedades en pares clave-valor. De forma predeterminada, LogManager busca un archivo llamadolog4j.properties en el CLASSPATH.
El nivel del registrador raíz se define como DEBUG. losDEBUG adjunta el appender llamado X a él.
Configure el appender llamado X para que sea un appender válido.
Establezca el diseño del appender X.
Sintaxis de log4j.properties:
A continuación se muestra la sintaxis del archivo log4j.properties para un appender X:
# Define the root logger with appender X
log4j.rootLogger = DEBUG, X
# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n
Ejemplo de log4j.properties
Usando la sintaxis anterior, definimos lo siguiente en log4j.properties archivo:
El nivel del registrador raíz se define como DEBUG, Los DEBUG appender llamado FILE lo.
El appender FILE Se define como org.apache.log4j.FileAppender. Escribe en un archivo llamadolog.out ubicado en el log directorio.
El patrón de diseño definido es % m% n , lo que significa que el mensaje de registro impreso será seguido por un carácter de nueva línea.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Es importante tener en cuenta que log4j admite la sustitución de variables de estilo UNIX como $ {variableName}.
Nivel de depuración
Hemos utilizado DEBUG con ambos añadidos. Todas las opciones posibles son:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- ALL
Estos niveles se explican más adelante en este tutorial.
Anexos
Apache log4j proporciona objetos Appender que son los principales responsables de imprimir mensajes de registro a diferentes destinos, como consolas, archivos, sockets, registros de eventos de NT, etc.
Cada objeto Appender tiene diferentes propiedades asociadas a él, y estas propiedades indican el comportamiento de ese objeto.
Propiedad | Descripción |
---|---|
diseño | Appender usa los objetos Layout y el patrón de conversión asociado con ellos para formatear la información de registro. |
objetivo | El destino puede ser una consola, un archivo u otro elemento, según el appender. |
nivel | El nivel es necesario para controlar el filtrado de los mensajes de registro. |
límite | El appender puede tener un nivel de umbral asociado independientemente del nivel del registrador. El Appender ignora cualquier mensaje de registro que tenga un nivel inferior al nivel de umbral. |
filtrar | Los objetos de filtro pueden analizar la información de registro más allá de la coincidencia de nivel y decidir si las solicitudes de registro deben ser manejadas por un Appender particular o ignoradas. |
Podemos agregar un objeto Appender a un registrador al incluir la siguiente configuración en el archivo de configuración con el siguiente método:
log4j.logger.[logger-name]=level, appender1,appender..n
Puede escribir la misma configuración en formato XML de la siguiente manera:
<logger name="com.apress.logging.log4j" additivity="false">
<appender-ref ref="appender1"/>
<appender-ref ref="appender2"/>
</logger>
Si está dispuesto a agregar un objeto Appender dentro de su programa, puede usar el siguiente método:
public void addAppender(Appender appender);
El método addAppender () agrega un Appender al objeto Logger. Como demuestra la configuración de ejemplo, es posible agregar muchos objetos Appender a un registrador en una lista separada por comas, cada uno imprimiendo información de registro en destinos separados.
Hemos utilizado solo un appender FileAppender en nuestro ejemplo anterior. Todas las posibles opciones de adición son:
- AppenderSkeleton
- AsyncAppender
- ConsoleAppender
- DailyRollingFileAppender
- ExternallyRolledFileAppender
- FileAppender
- JDBCAppender
- JMSAppender
- LF5Appender
- NTEventLogAppender
- NullAppender
- RollingFileAppender
- SMTPAppender
- SocketAppender
- SocketHubAppender
- SyslogAppender
- TelnetAppender
- WriterAppender
Cubriremos FileAppender en el registro en archivos y JDBC Appender se trataría en el registro en la base de datos .
Diseño
Hemos utilizado PatternLayout con nuestro appender. Todas las opciones posibles son:
- DateLayout
- HTMLLayout
- PatternLayout
- SimpleLayout
- XMLLayout
Con HTMLLayout y XMLLayout, puede generar registros en HTML y también en formato XML.
Formato de diseño
Aprenderá a formatear un mensaje de registro en el capítulo: Formato de registro .