2012-08-07 8 views
5

javaでは、空の行を印刷するのにSystem.out.println()を使用できますが、log4jをログファイルでどのように使用できますか? また、ログファイルの中に1つ以上の空白行を入れたいと思っています。Log4Jは空の行をログファイルに出力します

私はすでにfollwingをお読みください。 log4j how to append blank line

をしかし

logger.debug("\n"); 
logger.debug(""); 

とあなたがのレイアウトを時間のようなメッセージが、他の情報を印刷するというように(していないので、これは本当に便利ではありませんロガー)は依然としてログファイル内に保存されます。しかし、私はちょうど空の行を合計したい。 誰も私を助けることができますか?

答えて

8

Log4jは空白行を書き込むようには設計されていません。

このオプションはロガーでは見つかりません。ロガーは、ファイルやコンソールなどに書き込むアペンダーとは独立しているためです。

書き込みの前にログメッセージをチェックするカスタムFileAppenderを作成する必要があると思います。 message.equals("\n");の場合は、レイアウトなしの空白行を追加して、自分でファイルにアクセスし、レイアウトで通常のロギングをスキップします。使用することができますLogger.debug("\n");

また、空白行を追加することは悪い習慣です。それはあなたのログメッセージを複数の行に分割するのと似ています。あなたのLogMessageはそれぞれ1行にまとめてほしいので、LogViewer-Toolsの構文解析は簡単です(chainsawまたはOtrosLogViewerなど)。Stacktracesは例外です。

2

空のレイアウトのアペンダーとそのアペンダーを使用するロガーを作成します。次に、そのロガーを使用して空白行を書き込みます。ロガーの追加属性をfalseに設定して、ルートロガーがそのアペンダーの書式設定を使用してメッセージを書き込まないようにしてください。

関連する問題