Делать записи журнала принудительными в одну строку при использовании p & p EntLib logging block - PullRequest
0 голосов
/ 11 ноября 2009

Я использую блок ведения журналов корпоративной библиотеки шаблонов и практик (p & p EntLib) для записи в текстовый файл.

Некоторые сообщения журнала содержат несколько строк, которые я хотел бы сделать одной строкой - другими словами, заменив \r & \n пробелом в сообщениях журнала до того, как они будут записаны в файл .

Как мне настроить блок регистрации для этого, если это возможно?

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Из памяти вам нужно будет создать собственный форматтер, похожий на по этой ссылке .

0 голосов
/ 11 ноября 2009

Как насчет выполнения замены строки в вашем сообщении, чтобы заменить пробелы на новые строки?

т.е.

Сконфигурируйте ваш шаблон 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.
...