使用log4net处理日志消息中的嵌入式换行符

时间:2013-03-07 17:08:33

标签: log4net c#-2.0

当日志消息包含嵌入的换行符时,日志文件中的此类日志消息的对齐方式不正确。

例如,如果我使用转换模式:     [%-5level]%message%newline

如果我记录包含嵌入的新行字符或任何其他多行日志消息的异常堆栈跟踪,则消息中的其他行从该行的开头开始。

对于每个这样的附加行,是否可以遵循转换模式,文本是否适当缩进?

1 个答案:

答案 0 :(得分: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'

}