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

发布于 2024-08-20 14:20:26 字数 1290 浏览 3 评论 0原文

当我将 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'
}

I have an issue when i war my grails project to deploy on my production server there is a limitation that i only log to /var/log/tomcat5/catalina.out. This means that i have to make every log including stacktrace write to that one file. I've tried following other examples and it just doesn't seem to work i still get the error "permission denied on stacktrace.log"

This is my log4j config

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'
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

枉心 2024-08-27 14:20:26

只需修改您的配置:

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'
}

Just modify your configuration:

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'
}
天煞孤星 2024-08-27 14:20:26

无法帮助您解决当前的问题,但我建议您更改 movingFile 属性。当前设置只会提供一个 1kb 的文件,该文件会覆盖其自身。

尝试:

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

这将为您提供 100 10MB 文件或大约 1 GB 的日志。

Can't help with your current problem but I suggest you change the rollingFile properties. Current setting will only give a 1kb file that over writes it's self.

try:

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

This will give you 100 10MB files or about a gig worth of logs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文