【问题标题】:How can I use a service from a Java custom log appender in Grails?如何在 Grails 中使用来自 Java 自定义日志附加程序的服务?
【发布时间】:2014-10-24 07:07:43
【问题描述】:

基本问题是我想在 Grails 中使用来自 Java 自定义日志附加程序的服务。我在 resources.groovy 中定义了一个 bean:

beans = {
    databaseLogAppender(DatabaseLogAppender) {
        logMessageService = ref("logMessageService")
    }
}

...我已经在我的 Config.groovy 中添加了我的日志附加程序:

    appenders { 
            //...
            appender new DatabaseLogAppender(name: 'databaseLog', threshold: org.apache.log4j.Level.WARN)
    } 
    root { 
            warn 'databaseLog' 
            // ...
    } 

我可以看到当有 WARN 级别的日志时调用了我的日志附加程序,但我的服务没有被注入,所以我得到了一个 NPE。在我看来,我应该以其他方式配置附加程序,以便我使用我定义的 bean 而不是直接使用类,但我不知道如何做到这一点。有什么想法吗?

【问题讨论】:

    标签: spring grails log4j


    【解决方案1】:

    我想通了。 我在 BootStrap.groovy 中以编程方式添加了我的附加程序,而不是在我的 Config.groovy 中配置它。这样 bean 就被正确初始化了。

    我的 BootStrap.groovy:

    class BootStrap {
        def databaseLogAppender
    
        def init = { servletContext ->
            Logger.getRootLogger().addAppender(databaseLogAppender)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 2018-01-30
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多