2017-01-12 5 views
0

Grails 3.2.3でプロジェクトでlog4jを動作させることができません。 私はいくつかの問題があり、何が起こっているのか知りたいので、春のセキュリティプラグインの詳細なログを取得することです(正しい資格情報を提供してもログインできません)。Grails 3.2.3でlog4j:ログを取得しません

私はgrails-app/conf/application.groovyに次の行を追加:

log4j = { 
    all 'org.springframework' 
     'org.grails.plugins:spring-security-core' 
    debug 'grails.app' 

    appenders { 
     file name: 'file', file:'logs/logging.log' 
    } 

    root { 
     all 'stdout', 'file' 
    } 
} 

をしかし、私は対話モードでgrails run-appまたはrun-appでアプリケーションを実行すると、ファイルは作成されず、コンソールの出力がないと、たとえ私はログインしようとしますが、ログインは失敗します(ログレベルが「すべて」なので、いくつかのログメッセージを作成する必要があります)。

私はlog4jの専門家ではありません。私はそれを以前に使ったことはありません。 私はいくつかのチュートリアルとドキュメントを読みましたが、それらはすべてGrailsではなくプレーンなJavaプログラムに関連しています。

私のGrails設定のほとんどはYAML(application.yml)にあり、springとlog4jの設定はapplication.groovyでのみ行われます。私が理解する限り、Grailsはそれらを1つのConfiguration Objectにマージします。

私の設定で何が間違っていますか?

答えて

2

デフォルトではlogbackがGrails 3.xでロギングに使用されます。それを有効にするには、grails-app/conflogback.groovyが必要です。春SECのリメンバー・ミー・サービスはDEBUGレベルで

+0

おかげで多くのことをstdoutに記録されます。ここ

import grails.util.BuildSettings import grails.util.Environment import ch.qos.logback.classic.encoder.PatternLayoutEncoder import ch.qos.logback.core.ConsoleAppender import ch.qos.logback.core.FileAppender // See http://logback.qos.ch/manual/groovy.html for details on configuration appender('STDOUT', ConsoleAppender) { encoder(PatternLayoutEncoder){ pattern = '%d{HH:mm:ss.SSS} [%thread] %level %logger{36} - %msg%n' } } root INFO, ['STDOUT'] logger 'org.springframework.security.web.authentication.rememberme', DEBUG def targetDir = BuildSettings.TARGET_DIR if(Environment.developmentMode && targetDir){ appender('FULL_STACKTRACE', FileAppender){ file = "${targetDir}/stacktrace.log" append = true encoder(PatternLayoutEncoder){ pattern = '%d{HH:mm:ss.SSS} [%thread] %level %logger{36} - %msg%n' } } logger 'StackTrace', ERROR, ['FULL_STACKTRACE'], false } 

:通常、それは次のようになります!何らかの理由で私はGrailsの文書でこの情報を見逃しました。これでログが作成されます。まだいくつかの微調整、しかしそれはあなたのおかげで動作します。 – waldiphil

関連する問題