grails - grails log4j不适用于自定义追加程序

标签 grails log4j

我正在尝试将grails.app.controllers和grails.app.services的“信息及更高级别”日志记录到此附加程序“appLog”中。从文档和大量的Google搜索来看,当然还有堆栈溢出。我了解我所需要的只是我的附加程序,然后是记录器信息。
但这对我永远都行不通,因此我按如下所示添加了root块,并使其将每个日志路由到我的附加程序,并且我还将可加性设置为false,这样它就不会提取任何继承的日志。
我的要求非常简单,但是我无法使其正常运行。我正在使用grails 2.4.1。

有人可以告诉我们这里出了什么问题吗?

下面是我的配置:

Log4j:main{
    appender name: "appLog",
        new org.apache.log4j.DailyRollingFileAppender(
            threshold: org.apache.log4j.Level.INFO,
            datePattern: "'.'yyyy-MM-dd",
            file: log4jFileName,
            layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n')
        )

    info additivity: false, appLog: "grails.app.services.xxxService"

    root {
        debug 'appLog'
        additivity = false 
    }

}

最佳答案

我在这里看到的几件事是错误的:

  • 您的name: "appLog"部分应位于DailyRollingFileAppender构造函数中。
  • 您缺少一个appenders块。

  • 尝试将配置更改为此:
    log4j = {
        appenders {
            appender new org.apache.log4j.DailyRollingFileAppender(
                name: "appLog",
                threshold: org.apache.log4j.Level.INFO,
                datePattern: "'.'yyyy-MM-dd",
                file: log4jFileName,
                layout: pattern(conversionPattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] %p %c{5} %m%n')
            )
        }
    
        info additivity: false,
             appLog: "grails.app.services.xxxService"
    
        root {
            debug 'appLog'
        }
    }
    

    关于grails - grails log4j不适用于自定义追加程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24877099/

    相关文章:

    java - 使用log4j2,如何记录键值对

    java - 我应该在 log4j 中哪里使用 Configuration 或 LoggerConfig?

    java - 用不同的语言反序列化

    grails - 如何检查 groovy 脚本是否存在编译错误

    ajax - grails,使用ajax从 View B调用 View :A中的edit

    grails - 将 Grails 与 Spring Social(Facebook、Twitter 和 Google)集成需要什么

    tomcat - 如何为每个应用配置 tomcat 6 的 logs/catalina.out。 (为 sys.out、sys.err 配置特定于 Web 应用程序的日志文件)

    html - Grails 2.3.7 使用 flash.message、i18n 和 html 标记重定向 Controller 操作

    grails - 两个Grails插件之间的冲突

    java - 是否有可能以任何方式在 slf4j 配置中使用 Spring 通配符? (不是作为根记录器!)