Exception 在日志中记录grails应用程序中的错误

Exception 在日志中记录grails应用程序中的错误,exception,grails,logging,log4j,Exception,Grails,Logging,Log4j,当我的Grails应用程序崩溃时,它会在错误页面上显示错误和堆栈跟踪,因为error.gsp页面有以下代码段。但是,日志文件中不会记录任何内容 我怎样才能改变这个?因为对于生产应用程序,我计划删除renderException,因为我不希望用户看到整个stacktrace 我的log4j设置如下: appenders { rollingFile name:'catalinaOut', maxFileSize:1024, fileName:"${System.properties.getP

当我的Grails应用程序崩溃时,它会在错误页面上显示错误和堆栈跟踪,因为error.gsp页面有以下代码段
。但是,日志文件中不会记录任何内容

我怎样才能改变这个?因为对于生产应用程序,我计划删除
renderException
,因为我不希望用户看到整个stacktrace

我的log4j设置如下:

appenders {
    rollingFile name:'catalinaOut', maxFileSize:1024, fileName:"${System.properties.getProperty('catalina.home')}/logs/mylog.log"
}

root {
    error 'catalinaOut'
    debug 'catalinaOut'
    additivity = true
}

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',
        'grails.app'

debug   'grails.app'
}


我正在开发中运行这个应用程序,因为我使用这些设置进行控制台和基于文件的日志记录。如果不想/不需要控制台,可以删除标准输出。只需将所有错误类复制到相应的列表中

log4j = {

    def loggerPattern = '%d %-5p >> %m%n'

    def errorClasses = [] // add more classes if needed
    def infoClasses = ['grails.app.controllers.myController'] // add more classes if needed
    def debugClasses = [] // add more classes if needed

    appenders {
        console name:'stdout', layout:pattern(conversionPattern: loggerPattern)
        rollingFile name: "file", maxFileSize: 1024, file: "./tmp/logs/logger.log", layout:pattern(conversionPattern: loggerPattern)
    }

    error   stdout: errorClasses, file: errorClasses
    info    stdout: infoClasses, file: infoClasses
    debug   stdout: debugClasses, file: debugClasses
}

在列表中,我可以同时输入包名吗?还是它们需要具体化classes@Anthony是的,您还可以添加一个包,这意味着该包中的所有类都将具有相同的日志级别