java - 在 apache tomcat 服务器启动中通过电子邮件发送错误和异常

标签 java xml apache tomcat logging

我使用了 apache-tomcat-7.0.25 并在我的系统上启动了一个本地实例。 我必须通过电子邮件将错误和异常发送给我在日志文件中找到的各种人。 我有配置文件 server.xml 、 web.xml 、 tomcat-users.xml 、 context.xml 、 catalina.properties 文件和一个 logging.properties 文件。

logging.properties 文件由以下代码组成。

handlers = 1catalina.org.apache.juli.FileHandler, \
           2localhost.org.apache.juli.FileHandler, \
           3manager.org.apache.juli.FileHandler, \
           java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
3manager.org.apache.juli.FileHandler.bufferSize = 16384

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter


############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \
   2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = \
   3manager.org.apache.juli.FileHandler

# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE

如何在出现错误或异常时重定向到邮件?

最佳答案

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

对于 java.util.logging,您可以使用 MailHandler包含在 JavaMail 中.

  1. 下载JavaMail引用实现 jar 文件 (javax.mail.jar)。
  2. > Modify the tomcat startup script include JavaMail在 Tomcat 引导类加载器中。
  3. > Modify the 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.CollectorFormatter.format=Tomcat:{0}{1}{2}{4,choice,-1#|0#|0<... {4,number,integer} more}
#com.sun.mail.util.logging.CompactFormatter.format=[%4$-7.7s] %7$#.140s
com.sun.mail.util.logging.MailHandler.level=WARNING
com.sun.mail.util.logging.MailHandler.filter=com.sun.mail.util.logging.DurationFilter
com.sun.mail.util.logging.MailHandler.pushLevel=WARNING
com.sun.mail.util.logging.MailHandler.mail.host=some-smtp-host
#com.sun.mail.util.logging.MailHandler.mail.user=some-user
#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.smtps.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

关于java - 在 apache tomcat 服务器启动中通过电子邮件发送错误和异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19900686/

相关文章:

java - Google 管理设置 API 的只读范围

java - UUID.fromString 导致 "invalid long"

java - Solr 的执行模型是什么?

apache - Apache/CentOS 的最佳邮件服务器

java - Hibernate:如何急切地获取未关联的实体?

java - hadoop 关于如何处理日志的建议

c# - 在 XML 中存储关系数据

xml - 如何使用 Perl 的 XML::Simple 从 XML 文件中提取值?

java - 在android中显示通知方法更改?

php - 使用 PHP 5.3.6 和 VC6 编译的 Apache 时可能会出现哪些潜在问题?