我有一個Grails項目,我用Logback替換Log4j。現在我也想使用org.slf4j.Logger
而不是org.apache.commons.logging.Log
類進行日誌記錄。如何更改依賴注入放置到每個Controller/Service/Domain類的默認對象log
?Grails 2.1.1 - 將默認注入日誌對象從commons.logging.Log更改爲slf4j.Logger
我搜索了BuildConfig.groovy
和Config.groovy
文件,但是我找不到任何配置?我也看過grails-app/src/templates/artifacts/Controller.groovy
,但我仍然找不到任何可以配置的地方...
舒爾,我可以得到我自己的org.slf4j.Logger
的實例,但是我必須在每個類中聲明它像
private static Logger lbLogger = LoggerFactory.getLogger(MyClass.class)
這不是我想要的東西 - 我很想只需更換注射Logger
對象。
有沒有人對此主題有任何建議?
感謝您的回答......您是否從插件角度講話?這個「依賴注入」我定義的'logger'到每個Controller類中嗎? – herom
我得到了解決方案,或者更好地說一個建議,告訴我Graeme Rocher在grails-user郵件列表中的正確方向:您必須使用'AstTransformer'(請參閱https://github.com/grails /grails-core/blob/master/grails-logging/src/main/groovy/org/codehaus/groovy/grails/compiler/logging/LoggingTransformer.java)並將其作爲一個'java'類在插件中實現...但即使我知道該怎麼做,我不知道如何開發這樣一個插件... – herom
我創建了一個帶有ASTTransformer類的插件,它可以從org.apache.commons中更改注入的'log'對象。 logging.Log'到一個'org.slf4j.Logger'實例。但如果我想添加一些東西(而不是替換或更改已經存在的對象),我會盡力。非常感謝! – herom