Grails将所有文件记录到一个文件中

时间:2010-02-05 19:21:57

标签: grails log4j

当我在我的生产服务器上部署grails项目时,我遇到了一个问题,我只能登录到/var/log/tomcat5/catalina.out。这意味着我必须使包含堆栈跟踪的每个日志都写入该文件。我试过跟随其他的例子,它似乎没有用,我仍然得到错误“stacktrace.log上的权限被拒绝”

这是我的log4j配置

log4j = {
    // Example of changing the log pattern for the default console
    // appender:
    //
    appender.stacktractLog = "org.apache.log4j.FileAppender"
    appender.'stacktraceLog.File'="/var/log/tomcat5/catalina.out"
    appenders {
        rollingFile name:'catalinaOut', maxFileSize:1024, fileName:"/var/log/tomcat5/catalina.out"
    }

    root {
        error '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'

    warn   'org.mortbay.log'
}

2 个答案:

答案 0 :(得分:2)

只需修改您的配置:

log4j = {
    // Example of changing the log pattern for the default console
    // appender:
    //
    appenders {
        rollingFile name:'catalinaOut', maxFileSize:1024, fileName:"/var/log/tomcat5/catalina.out"
file name: 'stacktrace', file: "/var/log/tomcat5/catalina.out", layout: pattern(conversionPattern: '%c{2} %m%n')
    }

    root {
        error 'catalinaOut'
        additivity = true
    }

   error stacktrace: "StackTrace"

    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'

    warn   'org.mortbay.log'
}

答案 1 :(得分:1)

无法解决您当前的问题,但我建议您更改rollingFile属性。当前设置只会提供1kb的文件,而不是自己写的。

尝试:

rollingFile name:'catalinaOut', maxFileSize:${10*1024*1024},maxBackupIndex:100,fileName:"/var/log/tomcat5/catalina.out"

这将为您提供100个10MB文件或大约一个价值的日志。