grails - 如何使用 Log4J 禁用来自不同模块的日志记录,例如阻止 'Resources' 的日志

标签 grails logging log4j

我正在使用资源插件和用于日志记录的 Log4j 开发 Grails 应用程序。我想禁用资源插件的日志记录,因为它对我没有用,只是用无用的信息填充我的日志记录文件。如:

File [file] changed. Applying changes to application.
Scheduling reload of resource files due to change of file [file]
Performing a changed file reload
Loading declared resources...
Finished changed file reload 
我不希望我的日志文件中有这样的信息,因为它对我没有用,这也使得阅读我的日志文件中的其他有用信息变得困难。
有什么方法可以禁用特定模块的日志记录,例如 资源 ?
我尝试了以下解决方案:
off 'grails.app.services.org.grails.plugin.resource',
'grails.app.taglib.org.grails.plugin.resource',
'grails.app.resourceMappers.org.grails.plugin.resource' 
但这对我没有帮助。

最佳答案

您已经尝试了各种包/类名称组合,但均未成功。
由于您的示例日志输出不包含类名,因此您不知道应该定位什么。如果您修改用于日志消息的格式,您可以看到您需要阻止的确切名称。

一个例子:

//time, log level, thread, class, message, newline
console name: 'myAppender', layout: pattern(conversionPattern: '%d | %p | %t | %c | %m%n')
root {
    info 'myAppender'
}

一旦你这样做,你应该看到这样的输出:
2015-02-17 10:53:06,536 | INFO | localhost-startStop-1 | org.hibernate.tool.hbm2ddl.SchemaUpdate | schema update complete

要抑制该输出行,您的目标是
org.hibernate.tool.hbm2ddl.SchemaUpdate

关于grails - 如何使用 Log4J 禁用来自不同模块的日志记录,例如阻止 'Resources' 的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690962/

相关文章:

file - node.js 文件内存泄漏?

python - 如何将自定义日志级别添加到 Python 的日志记录工具

grails - Grails Jasper子报表

grails - 使用 run-web 运行应用程序时从 webflow 解析 View

Grails 在测试应用程序时失败

生成解析器的 Java 日志框架?

java - 为库的每个实例单独记录器

java - 将 Log4J 2.X 事件发送到 Log4J 1.X

java - repast simphony 中的 log4j 错误消息 - 批量运行

Grails ApplicationHolder 替换