Puedo usar log4j y le gustaría dirigir la salida de ciertos Registradores para archivos específicos.

Ya tengo varios appenders en su lugar. Ahora, para hacer más fácil depurar, quiero decirles log4j que la salida generada por una clase específica (por ejemplo, foo.de la barra.Baz) debe ser escrito a un archivo de registro específico.

Se puede hacer esto?

OriginalEl autor gubrutz | 2010-05-04

2 Comentarios

  1. 185

    Un ejemplo:

    log4j.rootLogger=ERROR, logfile
    
    log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.logfile.datePattern='-'dd'.log'
    log4j.appender.logfile.File=log/radius-prod.log
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n
    
    log4j.logger.foo.bar.Baz=DEBUG, myappender
    log4j.additivity.foo.bar.Baz=false
    
    log4j.appender.myappender=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.myappender.datePattern='-'dd'.log'
    log4j.appender.myappender.File=log/access-ext-dmz-prod.log
    log4j.appender.myappender.layout=org.apache.log4j.PatternLayout
    log4j.appender.myappender.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n
    ahh – de simple!!! Gracias! ¿El log4j.aditividad.foo.de la barra.Baz=valor false exigir que la salida de Baz no se mostrará en la rootLogger del adicionador?
    sí, eso es correcto
    ¿qué versión de log4J es esto? Estoy tratando de encontrar el archivo xml de configuración para hacer la misma cosa para log4j versión 1.2.17
    sí, nada raro no
    configuración de aditividad a false prevenir el registrador de registro para los appenders de sus ancestros (true por defecto), En este caso, tenía la aditividad sido dejado a la verdad, la tala de árboles para el Baz appender habría escrito para ambos archivos.

    OriginalEl autor Maurice Perry

  2. 16

    He aquí una respuesta sobre el XML de configuración, tenga en cuenta que si usted no da el archivo appender un ConversionPattern va a crear el archivo de 0 bytes y no escribir nada:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
        <appender name="console" class="org.apache.log4j.ConsoleAppender">
            <param name="Target" value="System.out"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
            </layout>
        </appender>
    
        <appender name="bdfile" class="org.apache.log4j.RollingFileAppender">
            <param name="append" value="false"/>
            <param name="maxFileSize" value="1GB"/>
            <param name="maxBackupIndex" value="2"/>
            <param name="file" value="/tmp/bd.log"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
            </layout>
        </appender>
    
        <logger name="com.example.mypackage" additivity="false">
            <level value="debug"/>
            <appender-ref ref="bdfile"/>
        </logger>
    
        <root>
            <priority value="info"/>
            <appender-ref ref="bdfile"/>
            <appender-ref ref="console"/>
        </root>
    
    </log4j:configuration>
    es fundamental para eliminar <appender-ref ref="bdfile"/> de <root> – de lo contrario, usted podrá ver su registro entero copiado este archivo.
    cómo configurar este valor por defecto de paquete o clase específica sin paquete?
    Es el <logger>... elemento. Especificar la clase o paquete como el nombre y el appender como el archivo appender.

    OriginalEl autor mikeb

Dejar respuesta

Please enter your comment!
Please enter your name here