3

モジュールに応じて異なるアペンダーにログインしたい...

私は 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'       
    }
}

この構成では、ログは 2 つのローリング ファイルと stdout に書き込まれます。ローリング アペンダーをルートから削除すると、ファイルのグループにアペンダーが指定されていても、ローリング ファイルは空のままになります。

ログをアペンダーに分けるためのアドバイスはありますか?

4

1 に答える 1

2

additivity: falseカスタムアペンダーに追加する必要があると思います。

debug rollingFileImport: [foo, bar, baz]
      additivity: false

info rollingFileGrailsApp: [foo1, bar1, baz1]
     additivity: false

grails でのロガーの継承を参照してください。

于 2013-06-03T14:16:00.397 に答える