Tomcat“Log4J”上的 Grails WAR根本不工作
我在 grails 应用程序的 Config.groovy 中正确配置了 log4j DSL。使用 grails run-app 运行应用程序会转储完美的日志记录,正如我在 DSL 中指定的那样。然而,在进行 grails war 生成 war 文件并将其部署到 tomcat 后,日志记录就消失了。我看不到它在任何地方工作,除了 tomcat 控制台在调试级别显示数百万条日志语句,并且没有任何特定于我登录到日志文件的内容。
log4j = {
appenders {
appender new org.apache.log4j.DailyRollingFileAppender(name: "tomcatLog", datePattern: "'.'yyyy-MM-dd", file: "${logDirectory}/snm.log".toString(), layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n'))
}
root {
info 'stdout', 'tomcatLog'
additivity = true
}
info 'grails.app',
'grails.app.controller',
'grails.app.bootstrap',
'grails.app.service',
'grails.app.task',
'commons',
'jsontwitter'
}
您能解释一下上面的 DSL 吗?它将 commons.* 和 jsontwitter.* 类日志发送到指定的日志文件,但没有控制器,服务日志保存在文件中。
谢谢, 阿拉姆谢尔
I have log4j DSL correctly configured in my Config.groovy in a grails applicaiton. Running the application with grails run-app dumps perfect logging as I specified in the DSL. However after doing a grails war to generate a war file and deploying it to tomcat, logging just disappears. I can't see it working anywhere, except tomcat console showing millions of log statements at debug level and nothing going specific to my logging into log files.
log4j = {
appenders {
appender new org.apache.log4j.DailyRollingFileAppender(name: "tomcatLog", datePattern: "'.'yyyy-MM-dd", file: "${logDirectory}/snm.log".toString(), layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n'))
}
root {
info 'stdout', 'tomcatLog'
additivity = true
}
info 'grails.app',
'grails.app.controller',
'grails.app.bootstrap',
'grails.app.service',
'grails.app.task',
'commons',
'jsontwitter'
}
Can you please explain the above DSL? It send commons.* and jsontwitter.* classes logs to designated log file but no controller, services log is saved in file.
Thanks,
Alam Sher
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要找出 tomcat 使用的日志目录。这是通过 grails-app/conf/Config.groovy 的以下代码片段完成的:
You need to find out, what logging directory tomcat uses. This is done by the following snippet of grails-app/conf/Config.groovy:
jira 上也存在一个错误: http://jira.codehaus.org/browse/GRAILS- 5666:Run-war 有一些类路径冲突。
Marc Palmer 说:在使用定义继承“全局”的 deps 的插件的应用程序中,日志记录被终止
There is also a bug on jira : http://jira.codehaus.org/browse/GRAILS-5666 : Run-war has some classpath conflicts.
Marc Palmer says :logging is killed in apps using plugins that define deps that inherit "global"