我希望我的grails应用程序记录所有调试,堆栈跟踪,未捕获的错误(500s等)以记录到tomcat中的特定文件myapp.log
。目前,所有内容都已记录到catalina.out
。这是不可取的,因为可能在Tomcat实例上部署了其他应用程序。
我的配置看起来像这样。我正在使用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"
}
答案 0 :(得分:3)
我将其放在environments
块中以确保它仅适用于生产环境。您可以在appenders
部分轻松添加文件追加器,Grails文档显示如何将其配置为每天创建新文件的滚动追加器,或者文件达到最大大小等等。&# 39;附加' root
级别的appender代替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