0

苦苦寻找解决方案,以解决不得不不断访问我的服务器、加载 catalina.out 文件并在混乱中寻找异常的痛苦。开发人员使用什么来持续监控 tomcat catalina.out 文件并在发现异常时发送电子邮件?对于编写我自己的 shell 脚本来完成这一点,我也可以接受一些指导。如果 shell 脚本对这种类型的事情足够强大。

我的服务器是 debian/ubuntu。我正在使用Tomcat 7。

注意:我遇到了 logwatch,但在初步审查时,它似乎不支持没有自定义的 tomcat,并且它似乎无法在 catalina.out 文件中嗅出异常,而且它似乎不是实时监控的实用程序。我宁愿不等到一天结束才了解可能发生的灾难性异常。

附加说明:我确实计划在未来实施类似 log4j 的东西,但目前我正在寻找更快的替代方案。不需要我更新所有异常处理代码的东西。

4

3 回答 3

1

如果您使用的是 log4j,您可以只使用 SMTP appender 来获取错误级别ERROR。有关更多信息,请参阅文档。我过去曾在 Tomcat 中使用过它,效果很好。

此外,这个答案有一个使用 SMTP appender 发送电子邮件的完整示例。

于 2015-07-11T18:00:10.947 回答
0

在www.newrelic.com购买一个帐户,将他们的监控添加到您的应用程序(这对 tomcat 来说很容易),并配置他们的警报机制,以便在错误https://docs.newrelic.com/docs/alerts时向您发送电子邮件。

于 2015-07-11T14:32:39.033 回答
0

免责声明:我是JavaMail 项目中包含的MailHandler的内容开发人员。

因为java.util.logging您可以使用JavaMail附带的MailHandler。下载 JavaMail 参考实现 jar 文件并修改 Tomcat 启动脚本,在 Tomcat 引导类加载器中包含 JavaMail。然后修改 logging.properties 文件以安装 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
com.sun.mail.util.logging.MailHandler.mail.from=app@server.com
#com.sun.mail.util.logging.MailHandler.mail.sender=team@list.com
com.sun.mail.util.logging.MailHandler.mail.to=devs@bugfixers.com
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
于 2016-02-09T18:13:14.977 回答