【问题标题】:grails log4j diffrerent appenders according filesgrails log4j 根据文件不同的附加程序
【发布时间】:2013-05-29 11:19:38
【问题描述】:

我想根据模块登录到不同的附加程序...

我有 3 个附加程序:控制台、一个用于记录控制器和服务的滚动文件,以及另一个用于在作业中记录一些内容的滚动文件。我想只为它的滚动文件记录作业的代码,并只用另一个滚动文件记录控制器和服务。

这是我的 grails log4j 配置:

development {   
    def catalinaBase = System.properties.getProperty('catalina.base')
    if (!catalinaBase) catalinaBase = '.'
    def logDirectory = "${catalinaBase}/logs/AmbienticWebsite"


    log4j = {

        appenders {
            console name:'stdout', layout:pattern(conversionPattern: '%c{2} [%p] - %m%n')
            appender new DailyRollingFileAppender(
                    name: "rollingFileGrailsApp",
                    file: "${logDirectory}/GrailsApp.log",
                    datePattern: "'.'yyyy-MM-dd",
                    layout: pattern(conversionPattern: commonPattern)
            )
            appender new DailyRollingFileAppender(
                name: "rollingFileImport",
                file: "${logDirectory}/Imports.log",
                datePattern: "'.'yyyy-MM-dd",
                layout: pattern(conversionPattern: commonPattern)
            )
        }

        root {
            error 'stdout', 'rollingFileImport', 'rollingFileGrailsApp' // both stdout and AmbienticWebsite_dev.log are filled by logging information
            additivity = false
        }

          debug rollingFileImport: 'ambienticwebsite.EventImportJob',
                                    'time2marketing.time2marketingImportService',
                                    'eventImportData.DiscomImportDataService',
                                    'eventImportData.EventImportService'

          info rollingFileGrailsApp: 'ambienticwebsite', 
                'ambienticwebsite.jobManagement.AmbienticJobListener',
                'BootStrap',
                'grails.app.controllers',
                'grails.app.services'       
    }
}

使用此配置,日志将写入两个滚动文件和标准输出。如果我从根目录中删除滚动附加程序,滚动文件将保持为空,即使为文件组指定了附加程序。

有没有人建议将日志分离到附加程序中?

【问题讨论】:

    标签: grails log4j


    【解决方案1】:

    我认为您需要将 additivity: false 添加到自定义附加程序。

    debug rollingFileImport: [foo, bar, baz]
          additivity: false
    
    info rollingFileGrailsApp: [foo1, bar1, baz1]
         additivity: false
    

    请参阅 grails 中的 Logger Inheritance

    【讨论】:

    • 感谢您的回复,实际上,如果我将可加性添加到 false,即使未在根记录器中指定附加程序也可以工作,现在它可以工作了 :)
    • 我会确认这有助于解决我的类似问题。感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    相关资源
    最近更新 更多