如何将 Grails Log4J 设置为仅从应用程序记录信息级别
How to set Grails Log4J to only log info level from the app
我在我的 grails 2.4.2 应用程序中将 log4j 设置为基本级别。只要有错误级别日志,它就会将 console/writes 打印到文件中。现在我想返回并设置它以记录来自我的应用程序的信息级别日志。我的配置如下所示:
log4j = {
// Example of changing the log pattern for the default console appender:
//
//appenders {
// console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
//}
appenders {
environments {
production {
rollingFile name: "stacktrace", maxFileSize: "10MB", maxBackupIndex:2,
file:"/tmp/logs/stacktrace.log"
}
}
}
info 'grails.app'
error 'org.codehaus.groovy.grails.web.servlet', // controllers
'org.codehaus.groovy.grails.web.pages', // GSP
'org.codehaus.groovy.grails.web.sitemesh', // layouts
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
'org.codehaus.groovy.grails.commons', // core / classloading
'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.springframework',
'org.hibernate',
'net.sf.ehcache.hibernate'
}
问题是,当我将 root 也设置为记录信息级别的日志时,我得到了从所有 grails 依赖项中写出的信息日志。这使得无法跟踪和追踪信息日志中的任何内容。是否可以只打印出 grails 应用程序的信息日志,而只保留打印来自依赖项的错误日志?
Is it possible to just print out the info logs of the grails app, and
keep only printing error logs from dependencies?
是的。如果需要,您可以单独配置每个记录器。
我想您遇到的问题与 info 'grails.app'
有关,它配置了太多的记录器。如果扩展该前缀,则可以缩小受影响的记录器的范围。例如,如果你想配置你的控制器,你可以做类似 info 'grails.app.controllers'
的事情。如果你愿意,你可以更具体一些,比如info 'grails.app.controllers.com.yourcompany'
,等等。你可以对任何你想配置的工件类型做同样的事情。
我在我的 grails 2.4.2 应用程序中将 log4j 设置为基本级别。只要有错误级别日志,它就会将 console/writes 打印到文件中。现在我想返回并设置它以记录来自我的应用程序的信息级别日志。我的配置如下所示:
log4j = {
// Example of changing the log pattern for the default console appender:
//
//appenders {
// console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
//}
appenders {
environments {
production {
rollingFile name: "stacktrace", maxFileSize: "10MB", maxBackupIndex:2,
file:"/tmp/logs/stacktrace.log"
}
}
}
info 'grails.app'
error 'org.codehaus.groovy.grails.web.servlet', // controllers
'org.codehaus.groovy.grails.web.pages', // GSP
'org.codehaus.groovy.grails.web.sitemesh', // layouts
'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
'org.codehaus.groovy.grails.web.mapping', // URL mapping
'org.codehaus.groovy.grails.commons', // core / classloading
'org.codehaus.groovy.grails.plugins', // plugins
'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
'org.springframework',
'org.hibernate',
'net.sf.ehcache.hibernate'
}
问题是,当我将 root 也设置为记录信息级别的日志时,我得到了从所有 grails 依赖项中写出的信息日志。这使得无法跟踪和追踪信息日志中的任何内容。是否可以只打印出 grails 应用程序的信息日志,而只保留打印来自依赖项的错误日志?
Is it possible to just print out the info logs of the grails app, and keep only printing error logs from dependencies?
是的。如果需要,您可以单独配置每个记录器。
我想您遇到的问题与 info 'grails.app'
有关,它配置了太多的记录器。如果扩展该前缀,则可以缩小受影响的记录器的范围。例如,如果你想配置你的控制器,你可以做类似 info 'grails.app.controllers'
的事情。如果你愿意,你可以更具体一些,比如info 'grails.app.controllers.com.yourcompany'
,等等。你可以对任何你想配置的工件类型做同样的事情。