Механизм отправки записей журнала по электронной почте из вывода log4j

У меня были проблемы с SMTPAppender log4j, который не отправлял по электронной почте записи журнала INFO, я думаю, что решил это. Но теперь мне любопытно, если это лучшее решение. Я очень часто отправляю электронные письма на основе вывода различных файлов журналов. Есть ли лучшее решение, чем SMTPAppender для электронной почты? Я бы предпочел не навредить производительности моего приложения, а отправка электронной почты происходит асинхронно. И было бы неплохо, возможно, даже каждые 5 минут отправлять по электронной почте накопленные записи журнала, а не по одной, когда они происходят.


person at.    schedule 03.12.2010    source источник


Ответы (1)


Назначение SMTPAppender — своевременно уведомлять вас о критических событиях или, по крайней мере, когда произошло N событий, поэтому по умолчанию отправляются только журналы ERROR. Существует также свойство cb типа CyclicBuffer, объявленное для типа SMTPAppender, используйте его для управления количеством собранных операторов журнала перед их отправкой. Если приложение работает в среде Linux, более целесообразно использовать CRON для отправки этих отчетов журнала каждые 5 минут. TaskScheduler может помочь добиться того же на платформе Windows.

person Seego    schedule 03.12.2010
comment
какую команду я могу запустить в linux cron для отправки операторов журнала, где мне ТОЛЬКО отправлены записи журнала, которые я еще не видел? - person at.; 04.12.2010
comment
1. настроить log4j для записи журналов в файл (используйте RollingFileAppender) 2. создать cronjob 2.1 проверить, существует ли файл журнала 2.2 скопировать текущий файл журнала в [имя] 2.3 использовать почту для отправки копии 2.4 переименовать/удалить исходный журнал - person Seego; 04.12.2010