Estoy tratando de usar log4j para enviar informes disponibles que contengan las instrucciones de registro de un proceso en segundo plano. Quiero que se envíe un correo electrónico para cada proceso, no un correo electrónico para cada declaración de registro. Miré SMTPAppender
, pero no veo una forma de enviar manualmente el informe cuando finaliza el proceso. Creo que el TriggeringEventEvaluator
puede ser la clave, pero un problema al que me estoy enfrentando es cómo obtener un control para la instancia TriggeringEventEvaluator
. Estoy atascado usando log4j 1.2.14 y el método SMTPAppender.getEvaluator()
fue introducido en 1.2.15. ¿Alguna idea? ¿Estoy incluso en el camino correcto? ¿El método SMTPAppender.close()
entra en juego aquí?Uso de log4j para enviar informes por correo electrónico a través del agente SMTPAppender
Quiero ser capaz de hacer esto:
log.info(message1);
log.info(message2);
log.info(message3);
log.sendMail();
Después de pensar en esta un poco más, creo que es necesario aclarar lo que espero lograr. Estoy tratando de capturar el registro ejecutando un trabajo de cuarzo y enviar el registro resultante como un correo electrónico. El trabajo de cuarzo hace un montón de llamadas al método de servicio en varios servicios. Quiero que incluya cualquier registro que realicen esos métodos de servicio, así como el registro de los trabajos de cuarzo en sí. Estaba pensando que podría hacer algo como lo siguiente para capturar todo el registro, pero no está funcionando.
// at the beginning of quartz job
Logger logger = Logger.getRootLogger();
StringWriter sw = new StringWriter();
WriterAppender wa = new WriterAppender(new SimpleLayout(), sw);
logger.addAppender(wa);
// at the end of the quartz job
String report = sw.toString();
Probablemente [este mensaje] (http://stackoverflow.com/a/42435452/1902296) puede ser útil en – gumkins