0

Log4j は、Config.groovy の Grails Logging 設定の一部を無視しているようですが、他の設定は無視していません。Tomcat で Grails 2.2.1 を実行しています。

すべてのエラーおよび上位メッセージをコンソール (Tomcat の catalina.out にマップされます) に記録し、解析、スケジュール、およびシンジケート パッケージ内のすべての情報および上位メッセージを master.log に記録するように、構成ファイル (以下) をセットアップしました。 、およびすべてが、解析、スケジュール、およびシンジケート パッケージの上位メッセージをそれぞれの解析、スケジュール、およびシンジケート ログにデバッグします。

アペンダー セクションに記載されているすべてのファイルが適切な場所に作成され、ログ メッセージを受信して​​います。ただし、master.log はデバッグ メッセージを受信して​​おり、master.log と syndicate.log の両方のサイズが 19GB に増加していますが、構成で明らかに 25MB に制限されています...

誰かが私が間違っていることを見ることができますか? grails はどのようにして私の設定のある行を尊重し、次の行を尊重しないのでしょうか? 私の Config.groovy ファイルの関連セクションは次のとおりです。

log4j = {
// Uncomment to override the default logging level across all
//   classes.
root {
      warn catalinaOut
}

appenders {
  // this line prevents all messages from being duplicated to stdout DONT DELETE
    console name: "stdout",
            layout: pattern(conversionPattern: "")
    console name: "catalinaOut",
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")
    file name: "dcsFileAppender",
                file: "logs/data-collection-system/master.log",
                maxFileSize: "25MB",in
                maxBackupIndex: 10,
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")
    file name: "parseFileAppender",
                file: "logs/data-collection-system/parse.log",
                maxFileSize: "25MB",
                maxBackupIndex: 10,
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")
    file name: "scheduleFileAppender",
                file: "logs/data-collection-system/schedule.log",
                maxFileSize: "25MB",
                maxBackupIndex: 10,
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")
    file name: "syndicateFileAppender",
                file: "logs/data-collection-system/syndicate.log",
                maxFileSize: "25MB",
                maxBackupIndex: 10,
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")
}

environments {
    production {
      info dcsFileAppender: ["com.progauge.icp.parse", "com.progauge.icp.schedule", "com.progauge.icp.syndicate"]
      all parseFileAppender: ["com.progauge.icp.parse"],
        scheduleFileAppender: ["com.progauge.icp.schedule"],
        syndicateFileAppender: ["com.progauge.icp.syndicate"]
    }
}
}

補足として、標準のコンソール ロギング動作が必要ないため、stdout のパターンを空の文字列に設定する必要がありましたが、アペンダーを null に設定すると、カスタム コンソール ロギングが中断されます。これも望ましくありません。

4

1 に答える 1

3

これまでの構成には、主に次の 3 つの問題があります。

  • ログレベルはロガーごとに設定されます - 同じロガーから異なるアペンダーに異なるレベルのメッセージを送信する場合は、ロガーを最も詳細なレベルに設定し、関連するアペンダーにしきい値を設定してメッセージを除外する必要がありますログレベルが細かすぎる。
  • ファイルサイズを制限してバックアップを作成したい場合は、rollingFile代わりにタイプのアペンダーを使用する必要がありますfile
  • stdout使用する必要があるデフォルトのアペンダーを抑制します'null'(これは、値ではなく null の 4 文字の文字列であり、書き込まれたログ メッセージを無視するシンクでnullある Log4J を定義します)。NullAppender

このようなことをもっと試してください:

log4j = {
  // Uncomment to override the default logging level across all
  // classes.
  root {
      warn 'catalinaOut'
  }

  appenders {
    // this line prevents all messages from being duplicated to stdout
    'null' name: "stdout"

    console name: "catalinaOut",
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")

    // threshold to make this appender only log INFO and higher messages
    rollingFile name: "dcsFileAppender",
                file: "logs/data-collection-system/master.log",
                maxFileSize: "25MB",
                maxBackupIndex: 10,
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n"),
                threshold: org.apache.log4j.Level.INFO

    rollingFile name: "parseFileAppender",
                file: "logs/data-collection-system/parse.log",
                maxFileSize: "25MB",
                maxBackupIndex: 10,
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")
    rollingFile name: "scheduleFileAppender",
                file: "logs/data-collection-system/schedule.log",
                maxFileSize: "25MB",
                maxBackupIndex: 10,
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")
    rollingFile name: "syndicateFileAppender",
                file: "logs/data-collection-system/syndicate.log",
                maxFileSize: "25MB",
                maxBackupIndex: 10,
                layout: pattern(conversionPattern: "%-5p [%d] %c{2} %m%n")
  }

  environments {
    production {
      all parseFileAppender: ["com.progauge.icp.parse"],
        scheduleFileAppender: ["com.progauge.icp.schedule"],
        syndicateFileAppender: ["com.progauge.icp.syndicate"],
        dcsFileAppender: ["com.progauge.icp.parse", "com.progauge.icp.schedule", "com.progauge.icp.syndicate"]
    }
  }
}
于 2013-03-18T17:37:37.730 に答える