【问题标题】:Log4j has stopped working after switch the server(Grals 2.5.1 project)切换服务器后Log4j停止工作(Grals 2.5.1项目)
【发布时间】: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']
} 

【问题讨论】:

  • 解决方案?找出旧服务器和新服务器之间的区别。如果您的代码没有更改,则在您了解代码运行环境之间的差异之前,您不应该查看您的代码。
  • 感谢您的建议,在旧服务器的精确副本中运行项目后它正在工作。

标签: java grails log4j tomcat7


【解决方案1】:

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

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

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

【讨论】:

  • 是的,存在环境设置问题。它在制作旧服务器的精确副本后工作。感谢您的友好建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 2015-03-15
  • 2011-09-05
相关资源
最近更新 更多