我的config.groovy
中有以下内容// default for all environments
log4j = { root ->
appenders {
rollingFile name:'stacktrace', file:"${logDirectory}/app_stack.log".toString(), maxFileSize:'100KB'
}
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'
debug 'com.my.code'
root.level = org.apache.log4j.Level.INFO
}
我将调试语句打印到所有类的日志中,除了放在com.my.code包中的groovy文件我没有打印调试语句。只有info语句被打印到日志中。
以下是src / groovy
中某个groovy类的示例@Log4j
class SomeTest {
def someMethod() {
log.info("This will print")
log.debug("This will not print")
println log.isDebugEnabled() //prints false
print log.isInfoEnabled() //prints true
}
}
问题
如何打开包com.my.code
下的所有课程的调试?我正在使用grails 2.3.5。当我将root.level
更改为org.apache.log4j.Level.DEBUG
时,调试语句会显示,但也会为所有其他类打开DEBUG
答案 0 :(得分:0)
在grails 2.x应用程序中,我使用了下一种格式(关于你的配置):
debug rollingFile 'com.my.code'
此外,如果您需要为一堆软件包设置不同的日志级别:
debug rollingFile: ['com.example','com.otherpackage']
答案 1 :(得分:0)
这是一个配置,它会记录com.my.code
级别的DEBUG
个包中的所有代码,以及ERROR
级别的所有其他包。
日志将发送到控制台和名为appLog.txt
的文件。
log4j = {
appenders {
def logPattern = '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{2} - %m%n'
console name: 'consoleAppender', layout: pattern(conversionPattern: logPattern)
file name: "fileAppender", file: "appLog.txt"
}
root {
// define the root logger's level and appenders, these will be inherited by all other loggers
error 'consoleAppender', 'fileAppender'
}
def appNamespaces = [
'com.my.code',
'grails.app.conf.com.my.code',
'grails.app.filters.com.my.code',
'grails.app.taglib.com.my.code',
'grails.app.services.com.my.code',
'grails.app.controllers.com.my.code',
'grails.app.domain.com.my.code'
]
appNamespaces.each { debug it }
}