2

Grails (2.2.0) アプリを構成して、特定のパッケージのログ ファイルを作成し、それ以外のすべてにコンソール出力を使用しようとしています。また、ログ ファイルに送られるものはコンソールにも送られないようにしたいと考えています (それらは完全に分離しておいてください)。ドキュメントを読んで、これを行う方法についてまだ少し混乱しています。(log4j DSLを使用して)これを達成する例を手伝ってくれる人はいますか?

4

1 に答える 1

4

私はこの質問の助けを借りてこれを機能させました。Config.groovyで最終的に得たものは次のとおりです。

log4j = {
    appenders {
        console name: 'stdout', layout: pattern(conversionPattern: '%d{yyyy-MM-dd/HH:mm:ss.SSS} [%t] %x %-5p %c{2} - %m%n')

        rollingFile name: 'extraAppender',
                conversionPattern: '%d{yyyy-MM-dd/HH:mm:ss.SSS} [%t] %x %-5p %c{2} - %m%n',
                maxFileSize: 1024,
                file: '/tmp/logs/extra.log'
    }

    error  'org.codehaus.groovy.grails.web.servlet',        // controllers
           'org.codehaus.groovy.grails.web.pages',          // GSP
           'org.codehaus.groovy.grails.web.sitemesh',       // layouts
           'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
           'org.codehaus.groovy.grails.web.mapping',        // URL mapping
           'org.codehaus.groovy.grails.commons',            // core / classloading
           'org.codehaus.groovy.grails.plugins',            // plugins
           'org.codehaus.groovy.grails.orm.hibernate',      // hibernate integration
           'org.springframework',
           'org.hibernate',
           'net.sf.ehcache.hibernate'

    trace  additivity: false, extraAppender: 'extraLogger'
}

次に、extraLoggerを使用することになっているクラスで、次のようにロガーに移動します。

def extraLogger = LoggerFactory.getLogger('extraLogger')

これにより、コンソールログに記録されることなく、コンソールにさらに多くのことを記録し、別のログファイルに他の特定のことを記録することができます。

于 2013-02-14T15:28:27.877 に答える