2015-07-11 3 views
0

Борясь с поиском решения проблемы, связанной с необходимостью постоянного доступа к моему серверу, загрузите файл catalina.out и пройдите через беспорядок, чтобы найти исключения. Что разработчики используют для постоянного мониторинга файла tomcat catalina.out и отправки электронной почты при обнаружении исключения? Я также был бы в порядке с некоторыми рекомендациями по написанию собственного сценария оболочки для выполнения этого. Если скрипт оболочки будет достаточно мощным для такого типа вещей.Напишите мне каждый раз Catalina.out получает исключение

Мой сервер debian/ubuntu. Я использую Tomcat 7.

Примечание: я наткнулся Logwatch, но на первоначальном обзоре, кажется, не поддерживает, не настраивая кот, и он не появляется, чтобы быть в состоянии вынюхивать исключения в catalina.out, и он не является утилитой для мониторинга в режиме реального времени. Я бы предпочел не дожидаться конца дня, чтобы узнать о катастрофических исключениях, которые могут произойти.

Дополнительная информация: Я планирую реализовать что-то вроде log4j в будущем, но на данный момент я ищу более быструю альтернативу. Что-то, что не требует, чтобы я обновлял весь код обработки исключений.

ответ

1

Если вы используете log4j, вы можете просто использовать SMTP-приложение для уровня ошибки ERROR. См. the documentation для получения дополнительной информации. Я использовал это с Tomcat в прошлом, и он отлично работал.

Кроме того, this answer имеет полный пример использования SMTP-приложения для отправки электронной почты.

+0

Я упомянул, что это произойдет в будущем, но для этого требуется небольшая работа, и я хотел бы получить быстрое решение. Сказав это, возможно, что просто сделать эту работу будет проще. – ryandlf

+0

Это хорошее решение и совместимо с интерфейсом Logger, поэтому наилучшим вариантом будет снижение конверсии, в худшем случае вам может потребоваться переписать некоторые протоколирующие заявления. В любом случае, вы получите бесплатную электронную почту в этом процессе. – AlexC

0

приобретите учетную запись с www.newrelic.com, добавьте их мониторинг в свое приложение (which is easy for tomcat) и получите свой механизм оповещения, настроенный на отправку электронной почты при ошибке https://docs.newrelic.com/docs/alerts.

+0

Чтобы быть честным, новый реликвий (или аналогичная услуга), вероятно, будет в конечном итоге с дорогой. На данный момент, хотя я ищу что-то, что «делает немного меньше». Я просто хочу постоянно опросить каталину.out для каких-либо исключений, а затем отправить эти уведомления на указанный адрес электронной почты. – ryandlf

0

Отказ от ответственности: Я разработчик контента для MailHandler, включенный в проект JavaMail.

Для java.util.logging вы можете использовать MailHandler, входящий в комплект поставки: JavaMail. Загрузите файл jar-файла реализации JavaMail и modify the tomcat startup script include JavaMail в загрузке ClassLoader Tomcat. Затем измените файл logging.properties на install the MailHandler. Вот пример конфигурации:

handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler, com.sun.mail.util.logging.MailHandler 

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler, com.sun.mail.util.logging.MailHandler 


com.sun.mail.util.logging.MailHandler.subject=com.sun.mail.util.logging.CollectorFormatter 
com.sun.mail.util.logging.MailHandler.level=WARNING 
com.sun.mail.util.logging.MailHandler.pushLevel=WARNING 
com.sun.mail.util.logging.MailHandler.pushFilter=com.sun.mail.util.logging.DurationFilter 
com.sun.mail.util.logging.MailHandler.mail.host=some-smtp-host 
com.sun.mail.util.logging.MailHandler.authenticator=some-password 
[email protected] 
#[email protected] 
[email protected] 
com.sun.mail.util.logging.MailHandler.verify=resolve 
com.sun.mail.util.logging.MailHandler.mail.smtp.quitwait=false 
com.sun.mail.util.logging.MailHandler.mail.smtp.connectiontimeout=45000 
com.sun.mail.util.logging.MailHandler.mail.smtps.connectiontimeout=45000 
com.sun.mail.util.logging.MailHandler.mail.smtp.timeout=45000 
com.sun.mail.util.logging.MailHandler.mail.smtps.timeout=45000 
Смежные вопросы