2017-04-27 82 views
0

Log4j在新服务器中部署战争时停止发送邮件和打印信息日志。在老战争中部署战争之前,它工作得很好。我在这里附加了log4j配置。请提出可能的解决方案。我也看到一些javax类在部署战争时未发现错误。注意:当我们通过grails run-app命令运行项目时它正在工作。如果我们从配置中删除邮件发送部分,它也开始在战争中工作。我使用tomcat服务器切换服务器后,Log4j停止工作(Grals 2.5.1项目)

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'] 
} 
+0

解决方案?找出旧服务器和新服务器之间的区别。如果你的代码没有改变,在你理解你的代码运行环境之间的差异之前,你不应该看你的代码。 – railsdog

+0

谢谢你的建议,它在完成旧的服务器。 –

回答

0

首先,为什么Log4J的appender中有系统配置参数?至少,这应该在BootStrap中。

现在,当您创建一个新服务器时,您首先需要安装并配置其所有依赖项,以便Grails运行。检查安装的Java版本,Grails版本,PATH环境变量,DNS配置和权限(特别代理配置)。

如果代码没有改变,它不工作,这绝对是一个环境问题。

+0

是的,有一个环境设置问题。它正在做旧服务器的完全复制品。谢谢你的建议。 –

相关问题