1. Prefacio
LOG4J es un marco de registro (API) confiable, rápido y flexible escrito en Java, lanzado bajo la licencia de software Apache. LOG4J se ha portado a idiomas como C, C ++, C#, Perl, Python y Ruby.
LOG4J es altamente configurable y se puede configurar a través de archivos externos en tiempo de ejecución. Depende del nivel de prioridad del registro y proporciona mecanismos para indicar la información de registro a muchos destinos, como: bases de datos, archivos, consolas, registros de sistemas UNIX, etc.
Hay tres componentes principales en log4j:
Loggers: responsable de capturar información registrada.
Ajegadores: responsable de publicar información de registro a diferentes destinos preferidos.
Diseños: responsable de formatear información de registro de diferentes estilos.
Nota: Este artículo se basa en log4j 2.x y arriba.
2. Instalación
log4j-core-xx.jar
LOG4J-API-XX.JAR
log4j-web-xx.jar (referencia requerida para proyectos web)
3. Configuración
Prepare algunos registros para agregar las siguientes referencias:
importar org.apache.logging.log4j.logmanager; importar org.apache.logging.log4j.logger;
static logger logger = logManager.getLogger (test.class.getName ());
La ubicación del archivo de configuración se encuentra en: directorio root SRC. Incluso si no hay un archivo de configuración, no habrá error. Por defecto, se emite en forma de consola .
El archivo de configuración LOG4J2 es muy diferente de log4 (la versión 1.x es muy diferente), y solo puede usar .xml, .json o .jsn formats. La configuración específica es la siguiente ( ${web:rootDir} representa el directorio raíz web):
<? xml versión = "1.0" encoding = "utf-8"?> <Configuration Status = "Error"> <!-Define todos los apentadores-> <Appenders> <!-Configuración de esta consola de salida-> <Console Name = "Console" Target = "System_out"> <!-Este es el formato de la salida del registro-> <PatternLapeout Pattern = "%d {HH: MM: SS. %-5Velvel %class {36} %L %M- %Msg %XEX %N "/> </Console> <!-El archivo imprimirá toda la información. Este registro se borrará automáticamente cada vez que se ejecute, que está determinado por el atributo de append, adecuado para pruebas temporales-> <file name = "error" filename = "$ {web: rootdir} /logs/error.log" append = "false"> <!-El nivel solo registra información en el nivel y anterior (Onmatch) y los otros están directamente rechazados (Onmismatchatch)-->-TRESSHOLLOL Onmatch = "Aceptar" OnMismatch = "Deny"/> <PatternLayout Charset = "UTF-8" Pattern = " %D {HH: MM: SS.SSS} %-5Level %class {36} %L %M- %msg %XEX %N"/> </File> <!-Esto imprimirá en la información. Cada vez que el tamaño excede el tamaño, el registro de este tamaño se almacenará automáticamente en la carpeta creada por año-mes y se comprimirá como un archivo-> <rollingfile name = "rollingfile" filename = "$ {web: rootdir} /logs/history.log" filePattern = "log/$$ {fecha: aaa yyyy-mm}/History- %d {mm-dd-yyyy}- %i.log.gz"> <paternlayout charset = "utf-8" patrón = " %d {yyyyy-mm-dd 'a' hh: mm: ss z} %-5level %clase {36} %l l %m- %msg%xex%n "/> <sizeBasedTriggeringPolicy size =" 50mb "/> </ RollingFile> </Appenders> <!-luego defina el registrador. Appender solo entrará en vigencia si el registrador se define e introduce. -> <gloggers> <!-Cree un registrador raíz predeterminado-> <root nivel = "traza"> <appender-ref ref = "error"/> <appender-ref ref = "rollingfile"/> <appender-ref ref = "console"/> </ root> </ loggers> </figuration>4. Proyectos ordinarios y proyectos web
Para proyectos ordinarios, la configuración anterior se puede usar normalmente después de completar la configuración anterior, y para proyectos web, no se generarán archivos de registro. Debe agregar la siguiente configuración en el nodo raíz <web-app> en web.xml:
< <filter-class> org.apache.logging.log4j.web.log4jservletfilter </filter-class> </filtro> <filter-mapping> <filter-name> log4jservletfilter </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-log4j2.x end->>
Resumir
Lo anterior es el método de usar LOG4J para registrar registros en Java. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.