he definido un appender log4j como:Log4J - tienen múltiples appenders escribir en el mismo archivo con uno que siempre registra
log4j.logger.com.example = DEBUG, filelog
log4j.appender.filelog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.filelog.File=c:/app.log
log4j.appender.filelog.layout=org.apache.log4j.PatternLayout
log4j.appender.filelog.layout.ConversionPattern=%d | %m%n
log4j.appender.filelog.DatePattern=.dd-MM-yyyy
En mi clase, me sale el registrador como:
Log logger = LogFactory.getLog(getClass());
Esto funciona correctamente Quiero tener un registrador que siempre registra ciertos mensajes (no errores, pero cosas como cuánto tardaron las transacciones). Si escribo esto en DEBUG o INFO, no los veré si se cambia el nivel de registro. Creo que puedo lograr esto usando otro appender que escribe en el mismo archivo.
Es esto posible tener dos appenders escribir en el mismo archivo? ¿Cómo obtendría la instancia del registrador en la que quiero utilizar el apilador de depuración normal y el apéndice transaccional en la misma clase? Estos mensajes no estarán todos en el mismo paquete, por lo que no puedo configurar un determinado paquete para que siempre se registre. Tendré que tienen estos appenders escribir en diferentes archivos, o se les tanto recuperar el código y tener algo como:
Log alwaysLogger = LogFactory.getLog(ALWAYS);
alwaysLogger.debug("This message will always be written regardless of the level set on the filelog appender");
actualización pude escribir en dos archivos de registro diferentes, si es necesario, pero ¿cómo ¿Obtendré la instancia de registrador en mi clase? No quiero configurar un paquete/clase para usar siempre un appender sobre el otro ya que las clases tendrán que registrar mensajes de información/error y los mensajes transaccionales "siempre" durante una ejecución normal. ¿Hay alguna manera de lograr lo que necesito incluso si escribe en dos archivos de registro diferentes?
Ok, incluso si necesito escribir en un archivo separado, ¿cómo puedo obtener ambas instancias de registrador en mi código? ¿Debo especificar qué paquetes usarán un appender sobre el otro? No quiero que eso suceda, ya que estas clases tendrán que registrar mensajes de información/error, así como las líneas "siempre". –
Esto es correcto. Es posible configurar varios appenders para el mismo archivo que funcionará durante un tiempo, pero la rotación de registros dará como resultado que uno de los apéndices escriba en un archivo anterior y, finalmente, registre la pérdida de los mensajes. – TaninDirect