log4j: Salida de registro de una clase específica a un appender específico

Utilizo log4j y me gustaría enrutar la salida de ciertos registradores a archivos específicos.

Ya tengo varios appenders en su lugar. Ahora, para facilitar la depuración, quiero decirle a log4j que el resultado generado por una clase específica (por ejemplo, foo.bar.Baz) debe escribirse en un archivo de registro específico.

Se puede hacer esto?

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 

Aquí hay una respuesta con respecto a la configuración XML, tenga en cuenta que si no le da al archivo un appender un ConversionPattern creará un archivo de 0 bytes y no escribirá nada:

 < ?xml version="1.0" encoding="UTF-8" ?> < !DOCTYPE log4j:configuration SYSTEM "log4j.dtd">