首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在grails-app外部注入Grails类中的日志对象

在grails-app外部注入Grails类中的日志对象
EN

Stack Overflow用户
提问于 2009-09-11 12:01:16
回答 3查看 13.4K关注 0票数 18

我在grails项目中的src/groovy中有一个类。

如何创建一个日志字段,以便为该类注入正确的记录器?

在grails中有commons logging还是只有log4j?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-11 14:03:42

您可以像添加常规Java类一样添加它:

代码语言:javascript
复制
Logger log = Logger.getLogger(getClass()) // log4j

代码语言:javascript
复制
Log log = LogFactory.getLog(getClass()) // commons logging
票数 10
EN

Stack Overflow用户

发布于 2009-10-09 14:55:19

Grails 1.X

做同样事情的一种更好的方式是:

代码语言:javascript
复制
private static log = LogFactory.getLog(this)

这利用了静态上下文中的this引用Class对象的事实,因此可以将上面的代码行从一个类复制粘贴到另一个类,而无需修改。

Grails 2.X

使用Groovy1.8中引入的@Log4j注释。这将添加一个log属性

代码语言:javascript
复制
import groovy.util.logging.Log4j
@Log4j 
class MyClass {

  def doIt() {
    log.info 'hello'
  }
}

使用注释的一个很好的好处是记录器会自动转换调用,如下所示:

代码语言:javascript
复制
log.info 'hello'

至:

代码语言:javascript
复制
if (log.isInfoEnabled() {
  log.info 'hello'
}
票数 48
EN

Stack Overflow用户

发布于 2010-04-14 11:02:50

使用标准Log4j的新Logger(getClass())可以工作,但为我记录了'java.lang.Class‘(使用Grails 1.2.1)。这个问题随着Sublog插件和@WithLog的出现而消失了。参见http://www.grails.org/plugin/sublog。此插件也不会使跟踪成为调试和致命错误...!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1410463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档