1. Archivo de configuración
El formato básico del archivo de configuración Log4J es el siguiente:
Copie el código de código de la siguiente manera:
#Configurar el registrador raíz
log4j.rootLogger = [nivel], appenderName1, appenderName2,…
#Configurar el destino de salida de la información de registro Appender
log4j.appender.appenderName = nombre.completamente.calificado.de.appender.clase
log4j.appender.appenderName.opción1 = valor1
…
log4j.appender.appenderName.opciónN = valorN
#Configurar el formato (diseño) de la información del registro
log4j.appender.appenderName.layout = nombre.completamente.calificado.de.la.clase.de.diseño
log4j.appender.appenderName.layout.option1 = valor1
…
log4j.appender.appenderName.layout.optionN = valorN
Donde [nivel] es el nivel de salida del registro, hay 5 niveles en total:
Copie el código de código de la siguiente manera:
FATAL 0
ERROR 3
ADVERTENCIA 4
INFORMACIÓN 6
DEPURACIÓN 7
El apéndice es el destino de salida del registro. Los apéndices proporcionados por Log4j incluyen lo siguiente:
Copie el código de código de la siguiente manera:
org.apache.log4j.ConsoleAppender(consola),
org.apache.log4j.FileAppender(archivo),
org.apache.log4j.DailyRollingFileAppender (genera un archivo de registro todos los días),
org.apache.log4j.RollingFileAppender (genera un nuevo archivo cuando el tamaño del archivo alcanza el tamaño especificado),
org.apache.log4j.WriterAppender (envía información de registro en formato de transmisión a cualquier lugar especificado)
Diseño: formato de salida del registro. Los diseños proporcionados por Log4j son los siguientes:
org.apache.log4j.HTMLLayout (diseño en formato de tabla HTML),
org.apache.log4j.PatternLayout (puede especificar patrones de diseño de manera flexible),
org.apache.log4j.SimpleLayout (contiene el nivel y la cadena de información de la información del registro),
org.apache.log4j.TTCCLayout (contiene información sobre el tiempo de generación del registro, subproceso, categoría, etc.)
Parámetros de impresión: Log4J utiliza un formato de impresión similar a la función printf en lenguaje C para formatear la información del registro, de la siguiente manera:
Copie el código de código de la siguiente manera:
%m Muestra el mensaje especificado en el código %p Prioridad de salida, es decir, DEBUG, INFO, WARN, ERROR, FATAL
%r Muestra el número de milisegundos que tomó desde el inicio de la aplicación hasta generar la información del registro %c Muestra la categoría a la que pertenece, generalmente el nombre completo de la clase %t Muestra el nombre del hilo que generó el evento de registro %n Genera un carácter de retorno de carro y avance de línea, la plataforma Windows es "/r/n", la plataforma Unix es "/n"
%d genera la fecha u hora del punto de tiempo del registro. El formato predeterminado es ISO8601. También puede especificar el formato después, como por ejemplo: %d{yyy MMM dd HH:mm:ss, SSS}. : 18 de octubre de 2002. 22:10:28, 921
%l Muestra la ubicación donde ocurrió el evento de registro, incluido el nombre de la categoría, el hilo donde ocurrió y el número de línea en el código. Ejemplo: Testlog4.main(TestLog4.java: 10)
2. Inicialice Logger en el código: 1) Llame al método BasicConfigurator.configure() en el programa: agregue un ConsoleAppender a la grabadora raíz, establezca el formato de salida en "%-4r [%t] %-5p %c %x - %m%n" a través de PatternLayout y también El nivel predeterminado para registradores rooteados es Level.DEBUG.
2) La configuración se coloca en el archivo, el nombre del archivo se pasa a través de los parámetros de la línea de comando y se analiza y configura a través de PropertyConfigurator.configure(args[x]);
3) La configuración se coloca en el archivo, el nombre del archivo y otra información se pasan a través de variables de entorno y se utiliza el proceso de inicialización predeterminado de log4j para analizar y configurar;
4) La configuración se coloca en el archivo, el nombre del archivo y otra información se pasan a través de la configuración del servidor de aplicaciones y se utiliza un servlet especial para completar la configuración.
3. Establezca el nivel de salida del registro para diferentes Appenders:
Al depurar el sistema, a menudo prestamos atención solo a la salida del registro del nivel de excepción, pero generalmente todos los niveles de salida se colocan en un archivo si el nivel de salida del registro es ¡ERROR! ? Entonces ve a buscarlo lentamente.
En este momento, podemos pensar que sería fantástico si pudiéramos enviar la información de la excepción a un archivo por separado. Por supuesto, Log4j ya proporciona dicha función. Solo necesitamos modificar el umbral del Appender en la configuración para lograrlo, como en el siguiente ejemplo:
[archivo de configuración]
Copie el código de código de la siguiente manera:
### establecer niveles de registro ###
log4j.rootLogger = depuración, salida estándar, D, E
###Salida a la consola###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = Sistema.salida
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### Salida al archivo de registro###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = registros/log.log
log4j.appender.D.Append = verdadero
log4j.appender.D.Threshold = DEBUG ## Registros de salida por encima del nivel DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{aaaa-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### Guardar información de excepción en un archivo separado###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## Nombre del archivo de registro de excepción
log4j.appender.D.Append = verdadero
log4j.appender.D.Threshold = ERROR ## ¡¡¡Solo genera registros por encima del nivel de ERROR !!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{aaaa-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
[Usado en código]
clase pública TestLog4j {
público estático vacío principal (String [] argumentos) {
PropertyConfigurator.configure ("D:/Code/conf/log4j.properties");
Registrador registrador = Logger.getLogger(TestLog4j. class);
logger.debug( "depurar ");
registrador.error( "error ");
}
}
Ejecútelo y vea si la información de la excepción se guarda en un archivo separado error.log