Использование log4j для отправки отчетов по электронной почте через SMTPAppender

Я пытаюсь использовать log4j для отправки по электронной почте отчетов, содержащих операторы регистрации из фонового процесса. Я хочу, чтобы одно электронное письмо отправлялось для каждого запуска процесса, а не одно электронное письмо для каждого оператора регистрации. Я просмотрел SMTPAppender , но не Я не вижу способа вручную отправить отчет по завершении процесса. Я считаю, что ключом может быть TriggeringEventEvaluator , но я сталкиваюсь с одной проблемой: как получить дескриптор экземпляра TriggeringEventEvaluator . Я застрял в использовании log4j 1.2.14, а метод SMTPAppender.getEvaluator () был представлен в 1.2.15. Есть предположения? Я вообще на правильном пути? Здесь задействован метод SMTPAppender.close () ?

Я хочу иметь возможность делать это:

log.info(message1);
log.info(message2);
log.info(message3);
log.sendMail();

Поразмыслив еще немного, я думаю, мне нужно уточнить, что я? м в надежде достичь. Я пытаюсь записать журнал выполнения задания кварца и отправить полученный журнал по электронной почте. Задание quartz выполняет множество вызовов методов обслуживания в различных службах. Я хочу, чтобы он включал любую запись в журнал, выполняемую этими методами обслуживания, а также саму запись в журнал кварцевых заданий. Я думал, что могу сделать что-то вроде следующего для сбора всех журналов, но это не работает.

// 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();
13
задан Drew Noakes 18 December 2012 в 13:35
поделиться