4

ログ メッセージに改行文字が含まれている場合、そのようなログ メッセージの配置はログ ファイル内で適切ではありません。

たとえば、変換パターンを使用している場合: [%-5level] %message%newline

また、改行文字が埋め込まれた例外スタック トレース、またはその他の複数行のログ メッセージをログに記録すると、メッセージ内の追加の行は行の先頭から始まります。

そのような追加の行ごとに、変換パターンに従い、テキストを適切にインデントすることは可能ですか?

4

1 に答える 1

1

私は次のようにします:

void Log(string message, int levelsDeep)
{
   StringBuilder sb = new StringBuilder();
   for(int i = 0; i < levelsDeep; i++)
       sb.Append(" ");

   string spacer = sb.ToString();

   string msg = message.Replace("\r\n", "\r\n" + spacer);
   msg = "\r\n" + msg + "\r\n";   //the prefix and suffix newline characters ensure that this and the next message starts in a new line and is not impacted by the 'spacer' from this message.

   // call log4net functions to log the 'msg'

}
于 2015-10-09T10:28:31.310 に答える