5

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

私はすでに以下を読みました: log4j空白行を追加する方法

しかし、これはあまり役に立ちません。

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

メッセージを印刷しませんが、時間などの他の情報(ロガーのレイアウト)はログファイル内に保存されます。しかし、私は完全に空の行が欲しいだけです。誰か助けてくれませんか?

4

2 に答える 2

8

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

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

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

また、空白行を追加することは悪い習慣です。これは、ログメッセージを複数の行に分割するのと似ています。すべてのLogmessageをそれぞれ1行にまとめたいので、LogViewerで簡単に解析できます-チェーンソーOtrosLogViewerなどのツール1つの例外はStacktracesです。

于 2012-08-07T11:56:13.420 に答える
2

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

于 2013-02-19T14:58:58.560 に答える