我有一个Grails项目,我用Logback替换了Log4j。现在我还想使用org.slf4j.Logger
而不是org.apache.commons.logging.Log
类进行日志记录。如何更改依赖注入为每个Controller / Service / Domain类放置的默认log
对象?
我在BuildConfig.groovy
和Config.groovy
文件中搜索但我找不到任何配置?我也看了grails-app/src/templates/artifacts/Controller.groovy
,但我仍然找不到可以配置的地方......
Shure,我可以得到我自己的org.slf4j.Logger
实例,但是我必须在每个类中声明它,如
private static Logger lbLogger = LoggerFactory.getLogger(MyClass.class)
这不是我想要的 - 我只想替换注入的Logger
对象。
有人对此话题有任何建议吗?
答案 0 :(得分:1)
我无法回想起日志对象的注入方式,但无论如何,您可以将自己的记录器注入控制器,服务或域对象。
In BootStrap:
def doWithDynamicMethods = { applicationContext ->
// def logger = SLF4J new instance
application.controllerClasses.each { controllerClass ->
controllerClass.metaClass.getLogger = {-> logger }
}
}
这是个主意,抱歉我现在没有Grails环境,所以我无法制作可行的代码。