2014-11-21 88 views
3

我有原木使用Groovy中提供的@Slf4j註解一個Groovy庫:如果我把這個lib放到一個Grails(2.4.2)應用Slf4j註釋在Grails中工作嗎?

@Slf4j 
class SomePogo { 
    // do stuff 
} 

,將默認基於log4j的記錄系統拿起日誌語句在這些類中?或者我需要將log4j記錄器添加到我的所有類中?

回答

6

所有Grails文物(控制器,域類,標籤庫,服務等)都有一個靜態記錄器字段(名爲log)自動添加到它們中。

src/groovy中的類也自動添加了一個名爲log的記錄器字段,但在這種情況下,記錄器是非靜態的。因此,您唯一需要明確添加記錄器的時間是,如果您想從src/groovy類中靜態記錄。在這種情況下,您需要註釋類@Slf4j(或@Log4j),以便用靜態log字段替換由Grails添加的非靜態記錄器。

+1

所有Groovy類都獲得記錄器,甚至是'src/groovy' – 2014-11-21 20:08:31

+0

@Dónal - 問題是關於第三方JAR作爲依賴項添加到Grails應用程序。如果它的類用'@ Slf4j'註解,它的記錄器會被Grails拾取嗎? – IAmYourFaja 2014-11-21 20:59:19

+0

@IAmYourFaja是的,當然。 Log4J不知道哪些類是你的,哪些屬於第三方庫,所以它們都是一樣的。 – 2014-11-21 21:29:31