我在grails项目中的src/groovy中有一个类。
如何创建一个日志字段,以便为该类注入正确的记录器?
在grails中有commons logging还是只有log4j?
发布于 2009-09-11 14:03:42
您可以像添加常规Java类一样添加它:
Logger log = Logger.getLogger(getClass()) // log4j
或
Log log = LogFactory.getLog(getClass()) // commons logging
发布于 2009-10-09 14:55:19
Grails 1.X
做同样事情的一种更好的方式是:
private static log = LogFactory.getLog(this)
这利用了静态上下文中的this
引用Class
对象的事实,因此可以将上面的代码行从一个类复制粘贴到另一个类,而无需修改。
Grails 2.X
使用Groovy1.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'
}
发布于 2010-04-14 11:02:50
使用标准Log4j的新Logger(getClass())可以工作,但为我记录了'java.lang.Class‘(使用Grails 1.2.1)。这个问题随着Sublog插件和@WithLog的出现而消失了。参见http://www.grails.org/plugin/sublog。此插件也不会使跟踪成为调试和致命错误...!
https://stackoverflow.com/questions/1410463
复制相似问题