我在grails 2.4.2应用程序中将log4j设置为基本级别。每当有错误级别日志时,它将打印到控制台/写入文件。现在,我想返回并将其设置为同时从我的应用程序记录信息级别日志。我的配置如下所示:
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'
有关,后者配置了过多的记录器。如果扩展该前缀,则可以缩小受影响的记录器的范围。例如,如果要配置 Controller ,则可以执行info 'grails.app.controllers'
之类的操作。如果愿意,可以做得更具体一些,例如info 'grails.app.controllers.com.yourcompany'
等。您可以对要配置的任何 Artifact 类型进行相同的操作。
关于grails - 如何将Grails Log4J设置为仅记录来自应用程序的信息级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63364965/