将外部log4j.properties文件与Grails一起使用
在Grails中使用外部log4j.properties文件的最佳方式是什么?我希望使用传统的log4j.properties格式,而不是log4j.groovy样式的配置 我还想知道外部配置是否能很好地处理由将外部log4j.properties文件与Grails一起使用,grails,log4j,Grails,Log4j,在Grails中使用外部log4j.properties文件的最佳方式是什么?我希望使用传统的log4j.properties格式,而不是log4j.groovy样式的配置 我还想知道外部配置是否能很好地处理由grailswar创建并放入war文件的log4j.properties文件。如果我从Config.groovy中删除log4j配置,log4j.properties还会被放入war文件吗?请查看以下状态: “一些老式Java开发人员对log4j.xml更为熟悉,尽管配置文件要大得多。此插
grailswar
创建并放入war文件的log4j.properties文件。如果我从Config.groovy中删除log4j配置,log4j.properties还会被放入war文件吗?请查看以下状态:
“一些老式Java开发人员对log4j.xml更为熟悉,尽管配置文件要大得多。此插件提供了一种禁用默认log4j DSL的方法,并允许以原始格式或Groovy MarkupBuilder样式使用log4j.xml。”
我自己也没用过,所以不能说它在战争环境中的可用性。。只需对你的应用程序进行升级,然后进行试用。。它应该在WEB-INF文件夹下的某个明显的地方。如果这不起作用,上的Mingfai可能会帮助您解决问题。如果您使用的是1.0.x系列:
- 将War.groovy从$GRAILS\u HOME/scripts复制到$APP/scripts
- 注释掉复制的War.groovy的第145行和第154行
- 将log4j.properties放入$APP/grails-APP/conf中
- 运行$grailswar,它将提示您选择要运行的war脚本,然后选择本地脚本(通常为#1)
GrailsApp/conf/Config.groovy
中删除log4j={…}
代码
如果希望使用外部配置文件进行日志记录,就像在典型的JavaWeb应用程序中一样,那么使用以下命令更新文件grails-app/conf/spring/resources.groovy
beans = {
log4jConfigurer(org.springframework.beans.factory.config.MethodInvokingFactoryBean) {
targetClass = "org.springframework.util.Log4jConfigurer"
targetMethod = "initLogging"
arguments = ["classpath:log4j.properties"]
}
}
请注意,Log4j appender配置中使用的包名可能不是您所期望的,因为它将添加一个特定于Grails的前缀
WARN grails.app.controllers.org.example.BookController - This is a warn log message from BookController
ERROR grails.app.controllers.org.example.BookController - This is an error log message from BookController
+1这是一个合理的解决方案,但对我来说不太合适,因为我使用的是Grails1.0.3(该插件只适用于1.1)。不过,这是一个有用的答案。谢谢。我今天再次访问了它,发现它提供了一种使用Spring的Log4JConfigureBean实现这一点的方法。如果我有机会尝试一下,我可能会发布一个答案。