2014-09-26 59 views
0

我希望我的Grails应用程序来记录所有(1)调试,堆栈跟踪,未被捕获的错误(500S等)在Tomcat中记录到一个特定的文件myapp.log 。目前一切正在记录到catalina.out。这是不可取的,因为可能有其他应用程序部署在Tomcat实例上。如何配置的Grails应用程序写日志,堆栈跟踪和错误,以一个特定的文件

我的配置是这样的。我使用的Grails 2.2.4

log4j = { 
    appenders { 
     console name: "stdout", layout: pattern(conversionPattern: "%c{2} %m%n") 
    } 

    root { 
     info "stdout" 
    } 

    debug "com.myapp.mypackage", 
      "grails.app.controllers.com.myapp.mycontrollers" 
} 

回答

3

我把这个在environments块,以确保它仅适用于生产环境。您可以轻松地在appenders部分添加一个文件的appender和Grails的文档显示了如何将其配置为一个滚动的appender每天创建新文件,或者一旦文件已经达到最大尺寸等“附加”的附加器,以在root水平到位console的appender:

environments { 
    production { 
     log4j = { 
     appenders { 
      console name: "stdout", 
        layout: pattern(conversionPattern: "%c{2} %m%n") 

      file name: 'mylog', 
       file: '/var/logs/mylog.log', 
       layout: pattern(conversionPattern: "%c{2} %m%n") 
     } 

     root { 
      info "mylog" 
     } 

     debug "com.myapp.mypackage", 
       "grails.app.controllers.com.myapp.mycontrollers" 

     } 
    } 
} 

配置使用的Log4j DSL记录是相当混乱,但该文档解释了很多,有一堆有用的例子:http://grails.org/doc/latest/guide/conf.html#logging

相关问题