我希望我的 grails 应用程序记录所有调试、堆栈跟踪、 Uncaught Error (500 秒等),并将其记录到 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"
}
最佳答案
我将它放在 environments
block 中以确保它仅适用于生产环境。您可以在 appenders
部分轻松添加文件附加程序,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
关于tomcat - 如何配置 grails 应用程序以将日志、堆栈跟踪和错误写入特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26064911/