Я пытаюсь использовать 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();