es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No todos los registros se imprimen en los archivos de registro utilizando el archivo de propiedades LOG4j2.

He configurado mi webapp en Java utilizando log4j2 para los registros mediante un archivo de propiedades.

Cuando inicio Tomcat, se imprimen muchos registros en la consola, pero en mi archivo solo se imprimen unas pocas líneas.

¿Qué debo hacer para imprimir cada línea que esté presente en la consola en mi archivo de registros?

Recientemente he migrado de log 1.x a log 2.16.

Cuando utilizo log 1.x, todo se imprime en los archivos de registros presentes en la consola, pero en log 2.x no se imprime.

Por ejemplo, cuando inicio Tomcat, solo obtengo los registros relacionados con mi aplicación en el archivo, pero no obtengo nada relacionado con los registros de inicio de Tomcat u otros registros relacionados con los archivos JAR.

¿Alguien puede ayudarme con esto?

A continuación se muestra mi archivo de configuración.

Propiedades de log4j2:

status = all

appender.console.type = Consola
appender.console.name = LogToConsole
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} – %msg%n

#appender.file.type = Archivo
#appender.file.name = LogToFile
#appender.file.fileName=logs/app.log
#appender.file.layout.type=PatternLayout
#appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} – %msg%n

Rotar archivo de registro

appender.rolling.type = ArchivoRotativo
appender.rolling.name = LogToRollingFile
appender.rolling.fileName = ${catalina.home}/logs/SunnyLogs.log
appender.rolling.filePattern = ${catalina.home}/logs/$${date:yyyy-MM}/SunnyLogs-%d{MM-dd-yyyy}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.rolling.policies.type = Politicas
appender.rolling.policies.time.type = PoliticaDeActivacionBasadaEnTiempo
appender.rolling.policies.size.type = PoliticaDeActivacionBasadaEnTamano
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = EstrategiaDeRotacionPredeterminada
appender.rolling.strategy.max = 10

Registrar en la consola y el archivo rotativo

logger.app.name = com.sunny.common
logger.app.level = all
logger.app.additivity = false
logger.app.appenderRef.rolling.ref = LogToRollingFile
logger.app.appenderRef.console.ref = LogToConsole

rootLogger.level = all
rootLogger.appenderRef.stdout.ref = LogToConsole

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para imprimir cada línea que está presente en la consola en su archivo de registro, debe modificar el archivo de propiedades de log4j2 de la siguiente manera:

    1. Cambie 'status = all' a 'status = debug' para imprimir registros de nivel de depuración.
    
    2. Descomente las líneas para 'appender.file' y agregue la siguiente propiedad: 'immediateFlush = true'. Esto asegurará que las declaraciones de registro no se almacenen en búfer y se registren de inmediato en el archivo.
    
    3. Además, puede modificar la sección 'rootLogger' para agregar tanto registros en la consola como registros en el archivo de la siguiente manera:
    
            rootLogger.level = all
            rootLogger.appenderRef.stdout.ref = LogToConsole
            rootLogger.appenderRef.file.ref = LogToFile
    

    Además, si no ve ningún registro de inicio relacionado con Tomcat u otros archivos JAR en el archivo de registro, entonces debe especificar su nivel y referencia de registro en el archivo de propiedades. Asegúrese de agregar el nombre del registrador adecuado, el nivel de registro y la referencia del registrador para estos registros en su archivo de propiedades. Por ejemplo:

    # Registrar en la consola y en un archivo en rollo
    logger.app.name = com.sunny.common
    logger.app.level = all
    logger.app.additivity = false
    logger.app.appenderRef.rolling.ref = LogToRollingFile
    logger.app.appenderRef.console.ref = LogToConsole
    
    # Registrar registros de inicio de Tomcat
    logger.Tomcat.name = org.apache.catalina.startup.Catalina
    logger.Tomcat.level = all
    logger.Tomcat.additivity = false
    logger.Tomcat.appenderRef.rolling.ref = LogToRollingFile
    logger.Tomcat.appenderRef.console.ref = LogToConsole
    
    # Registrar registros relacionados con otros archivos JAR
    logger.jars.name = jar.package.name
    logger.jars.level = all
    logger.jars.additivity = false
    logger.jars.appenderRef.rolling.ref = LogToRollingFile
    logger.jars.appenderRef.console.ref = LogToConsole
    

    Asegúrese de reemplazar ‘com.sunny.common’, ‘org.apache.catalina.startup.Catalina’ y ‘jar.package.name’ con los nombres de registradores apropiados.

Comments are closed.