问题:
- 如何配置 Grails 以发送包含生产环境中生成的所有 log4j 错误消息(包括异常)的电子邮件?
值得注意的是:
- 这个问题与 Grails 1.1 有关,即 solution for Grails 1.0 is described here .
最佳答案
解决方案是将以下内容添加到 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/