exception - 配置 Grails 以邮寄生产环境中生成的所有异常

标签 exception logging grails log4j

问题:

  • 如何配置 Grails 以发送包含生产环境中生成的所有 log4j 错误消息(包括异常)的电子邮件?

值得注意的是:

最佳答案

解决方案是将以下内容添加到 Config.groovy 的 log4j 部分:

log4j = {
  ...
  appenders {
    console name:'stdout', layout:pattern(conversionPattern: '[%r] %c{2} %m%n')
    if (grails.util.Environment.current == grails.util.Environment.PRODUCTION) {
      def patternLayout = new org.apache.log4j.PatternLayout()
      patternLayout.setConversionPattern("[%r] %c{2} %m%n")
      def mailAppender = new org.apache.log4j.net.SMTPAppender()
      mailAppender.setFrom("from@example.com")
      mailAppender.setTo("to@example.com")
      mailAppender.setSubject("An log4j error has been generated in the production environment")
      mailAppender.setSMTPHost("your-smtp-host")
      mailAppender.setLayout(patternLayout)
      appender name:'mail', mailAppender
    }
  }
  root {
    error 'stdout', 'mail'
    additivity = true
  }
  ...
}

另外将 sun-javamail.jar 和activation.jar 添加到 lib/-folder 中。

此配置已经过测试,并且可以按预期工作。

关于exception - 配置 Grails 以邮寄生产环境中生成的所有异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1668109/

相关文章:

postgresql - Class.forName ("org.postgresql.Driver") 同时使用 Postgresql

java - 如何获取 Grails 应用程序中每个请求的内存使用情况

java - 从 Kotlin 调用 Java 编写的抛出异常的方法时,如何实现空安全?

java - 不能从静态上下文引用非静态方法 'getLogger'

haskell - 如何使用 Persistent 启用自动记录 SQL 语句

c# - EventLog.CreateEventSource 未创建自定义日志

hibernate - Grails 抛出表 "xxx"未找到

java - Spring 异常处理程序 - 使用带注释和 xml 定义

c++ - Hinnant 的堆栈分配器和异常

c++ - std::exception 和 "..."之间的区别