2012-07-04 33 views
5

我想注入的Log4j記錄器(或一般性的情況下,任何類)爲我所有的類,有一個日誌屬性:Groovy的依賴注入

def log 

這是在Grails的自動完成。我想在普通的groovy應用程序中具有相同的功能,可以說對於src下的所有常規文件。 Log4j的特點是,記錄器需要知道要記錄的類。 (Logger.getLogger(Class clazz)

我該如何做到這一點?

回答

11

你見過Groovy 1.8中的@Logannotation added嗎?

+0

真棒相當於!我一定錯過了。你們真的在那裏做得很好!謝謝。 – matcauthon

+0

實際上,在寫這篇文章的時候,log4j和slf4j [看起來](https://jira.codehaus.org/browse/GROOVY-5557)的註釋是[broken](https://jira.codehaus。 org/browse/GROOVY-5574)... –

+1

看看它,它似乎是一個類路徑問題..只要log4j在腳本執行時在類路徑中,註釋就可以正常工作:-D –

3

Groovy使用類上的@Log4j annotation爲此提供了本機支持。這將創建一個log場指向的Log4J記錄器使用相同的名稱所討論的類,即:

package com.example 
import groovy.util.logging.Log4j 

@Log4j 
public class LogExample { 
} 

package com.example 
public class LogExample { 
    private static final Logger log = Logger.getLogger(LogExample.class) 
}