我的grails项目中有一个src / groovy类。
如何创建一个注入了该类正确记录器的日志字段?
是否有公共记录或只是grails中的log4j?
答案 0 :(得分:47)
执行相同操作的更Groovy方法是:
private static log = LogFactory.getLog(this)
这利用了静态上下文中的this
引用Class
对象这一事实,因此上面的行可以从一个类复制粘贴到另一个类而无需修改。
使用Groovy 1.8中引入的@Log4j注释。这将添加log
属性
import groovy.util.logging.Log4j
@Log4j
class MyClass {
def doIt() {
log.info 'hello'
}
}
使用注释的一个好处是记录器会自动转换这样的调用:
log.info 'hello'
为:
if (log.isInfoEnabled() {
log.info 'hello'
}
答案 1 :(得分:10)
你可以像普通的Java类一样添加它:
Logger log = Logger.getLogger(getClass()) // log4j
或
Log log = LogFactory.getLog(getClass()) // commons logging
答案 2 :(得分:0)
使用标准Log4j的新Logger(getClass())工作,但为我记录了'java.lang.Class'(使用Grails 1.2.1)。使用Sublog插件和@WithLog解决了这个问题。见http://www.grails.org/plugin/sublog。这个插件也不会使Trace变成Debug和Fatal Error ......!