使用p& p EntLib日志记录块时,将日志条目强制为单行

时间:2009-11-11 09:23:05

标签: logging enterprise-library

我正在使用模式&实践企业库(p& p EntLib)日志记录块以写入文本文件。

一些日志消息包含多行,我想强制成为一行 - 换句话说,替换\r& \n在将日志消息写入文件之前在其中留有空格。

如果可以的话,如何为此配置日志记录块?

2 个答案:

答案 0 :(得分:1)

从内存中,您需要创建一个类似于this link的自定义格式化程序。

答案 1 :(得分:0)

如何在消息上执行字符串替换以替换换行符的空格?

将Formatter模板配置为:

<formatters>
  <add template="{timestamp}: {category}: {severity}: {message}"
    type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=null"
    name="My Text Formatter" />
</formatters>


然后在你的代码中用空格替换新行(这可以在一个集中的辅助方法中完成):

string message = @"This is 
the message
to log.";

message.Replace(Environment.NewLine, " ");


这应该会产生一个如下所示的日志文件:

11/11/2009 2:52:01 PM: My Category Event: Information: This is  the message to log.
11/11/2009 2:53:47 PM: My Category Event: Information: More test to log to the  file.