每次发送电子邮件给我Catalina.out都会收到例外情况

时间:2015-07-11 14:22:03

标签: java tomcat tomcat7 monitoring catalina.out

寻找解决方案来解决必须不断访问我的服务器的痛苦,加载catalina.out文件,并在混乱中查找异常。什么是开发人员用来持续监视tomcat catalina.out文件并在发现异常时发送电子邮件?我也可以编写自己的shell脚本来完成此操作。如果shell脚本对于这类事情足够强大。

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

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

附加说明:我计划将来实施像log4j这样的东西,但目前我正在寻找更快的替代方案。有些事情并不需要我更新我的所有异常处理代码。

3 个答案:

答案 0 :(得分:1)

如果您使用的是log4j,则可以将SMTP appender用于错误级别ERROR。有关详细信息,请参阅the documentation。我过去曾经和Tomcat一起使用它,效果很好。

此外,this answer还有一个使用SMTP appender发送电子邮件的完整示例。

答案 1 :(得分:0)

使用scheme.less购买帐户,将其监控添加到您的应用(www.newrelic.com),并将其警报机制配置为向您发送错误which is easy for tomcat的电子邮件。

答案 2 :(得分:0)

免责声明:我是JavaMail项目中包含的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 ,您可以使用MailHandler中包含的JavaMail。在Tomcat引导程序ClassLoader中下载JavaMail参考实现jar文件和modify the tomcat startup script include JavaMail。然后将logging.properties文件修改为install the MailHandler。以下是一个示例配置:

sorted_list = ["jack",4,3,1,"jill",8,1,0,"bob",0,0,10,"tim",5,3,1,"sod",3,1,0]

nameDict = {}
tmp = None
for _ in sorted_list:
    if isinstance(_, str):
        tmp = _
        nameDict[tmp] = []
    else:
        if tmp: nameDict[tmp].append(_)

final = []
for name in list(reversed(sorted(nameDict))):
    final += [name] + nameDict[name]

print final