切换服务器后 Log4j 已停止工作(Grals 2.5.1 项目)

Log4j has stopped working after switch the server(Grals 2.5.1 project)

Log4j 在新服务器中部署 war 时已停止发送邮件和打印信息日志。在旧服务器中部署 war 之前它工作正常。我在这里附上了 log4j 配置。请提出可能的解决方案。在部署 war 时,我还看到一些 javax class not found 错误。注意:当我们通过 grails 运行-app 命令 运行 项目时,它正在工作。如果我们从配置中删除邮件发送部分,它也会在 war 中开始工作。

我正在使用 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']
} 

首先,“为什么在 Log4J 的附加程序中有系统配置参数?至少,那应该在 BootStrap.

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

如果代码没有改变,无法正常工作,那肯定是环境问题。