我正在尝试将 Grails (2.2.0) 应用程序配置为具有特定包的日志文件,然后将控制台输出用于其他所有内容。我还想确保进入日志文件的任何内容都不会进入控制台(让它们完全分开)。通读文档,我仍然对如何完成这项工作感到有些困惑。有人可以帮忙举个例子来完成这个(使用 log4j DSL)吗?
问问题
2431 次
1 回答
4
我得到了这个问题的帮助。这是我在 Config.groovy 中得到的结果:
log4j = {
appenders {
console name: 'stdout', layout: pattern(conversionPattern: '%d{yyyy-MM-dd/HH:mm:ss.SSS} [%t] %x %-5p %c{2} - %m%n')
rollingFile name: 'extraAppender',
conversionPattern: '%d{yyyy-MM-dd/HH:mm:ss.SSS} [%t] %x %-5p %c{2} - %m%n',
maxFileSize: 1024,
file: '/tmp/logs/extra.log'
}
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'
trace additivity: false, extraAppender: 'extraLogger'
}
然后在应该使用extraLogger的类中,我只是像这样去记录器:
def extraLogger = LoggerFactory.getLogger('extraLogger')
这让我可以将更多内容记录到控制台,并将一些其他特定内容记录到另一个日志文件,而没有任何这些特定内容最终出现在控制台日志中。
于 2013-02-14T15:28:27.877 回答