【发布时间】:2017-09-25 07:20:07
【问题描述】:
Log4j 在新服务器中部署战争时已停止发送邮件和打印信息日志。之前在旧服务器上部署战争时工作正常。我已在此处附加了 log4j 配置。请提出可能的解决方案。在部署战争时,我还看到了一些javax class not found 错误。注意:当我们通过 grails run-app 命令运行项目时,它正在工作。如果我们从配置中删除邮件发送部分,它也会开始在战争中工作。
我正在使用 tomcat 服务器。
log4j = {
appenders {
if (grails.util.Environment.current.equals(grails.util.Environment.DEVELOPMENT)){
System.setProperty 'mail.debug', 'false'
System.setProperty 'mail.smtp.protocol', 'smtp'
System.setProperty 'mail.smtp.auth', 'true'
System.setProperty 'mail.smtp.starttls.enable', 'true'
System.setProperty 'mail.smtp.starttls.required', 'true'
def patternLayout = new org.apache.log4j.PatternLayout()
def mailAppender = new org.apache.log4j.net.SMTPAppender()
patternLayout.setConversionPattern("%d{HH:mm:ss} %C %m%n")
mailAppender.setSMTPPort(587)
mailAppender.setFrom("")
mailAppender.setTo("")
mailAppender.setSubject("Log4j error generated for Care Manager LOCAL")
mailAppender.setSMTPHost("email-smtp.us-east-1.amazonaws.com")
mailAppender.setLayout(patternLayout)
mailAppender.setSMTPDebug(false)
mailAppender.setSMTPUsername("")
mailAppender.setSMTPPassword("")
mailAppender.setThreshold(org.apache.log4j.Level.ERROR)
appender name:'mail', mailAppender
}
}
root {
error 'mail','stdout'
error 'stdout'
debug 'stdout'
}
// for spring security
//debug 'grails.plugins.springsecurity'
//debug 'org.codehaus.groovy.grails.plugins.springsecurity'
//debug 'org.springframework.security'
// debug 'org.jasig.cas.client'
error 'org.codehaus.groovy.grails.web.servlet', // controllers
'org.codehaus.groovy.grails.web.pages', // GSP
'org.codehaus.groovy.grails.web.sitemesh', // layouts
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
'org.codehaus.groovy.grails.commons', // core / classloading
'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.springframework',
'org.hibernate',
'net.sf.ehcache.hibernate',
'org.apache'
debug 'org.jasig.cas.client.proxy',
'org.jasig.cas.client.proxy.Cas20ProxyRetriever'
info additivity: false,
stdout:[ 'grails.app.controllers']
debug additivity: false,
stdout:[ 'grails.app.controllers']
}
【问题讨论】:
-
解决方案?找出旧服务器和新服务器之间的区别。如果您的代码没有更改,则在您了解代码运行环境之间的差异之前,您不应该查看您的代码。
-
感谢您的建议,在旧服务器的精确副本中运行项目后它正在工作。