Как пропустить экранирование "/" в Nlog.Web.AspNetCore - PullRequest
0 голосов
/ 01 марта 2019

Я использую Nlog.Web.AspNetCore 4.8 для входа в файл.В файле Nlog.config я настроил макет как JsonLayout.Проблема заключается в том, что конечный результат содержит обратную косую черту для экранирования символа «/», присутствующего в исходном сообщении об ошибке.Есть ли способ настроить NLog для исключения экранирования определенных символов, если это не указано явно?

Вот моя конфигурация JsonLayout:

<target xsi:type="File" name="ownFile-web" fileName="${logDirectory}/logs.txt" >
  <layout type='JsonLayout' includeAllProperties="true"  maxRecursionLimit="20" >
    <attribute name="time" layout="${longdate}" />
    <attribute name="level" layout="${level}" />
    <attribute name="logger" layout="${logger}" />
    <attribute name="message" layout="${message}" />
  </layout >
</target>

И вот результат:

{ "time": "2019-03-01 01:12:07.2239", "level": "Error", "logger": "Scheduler.Api.Startup", "message": "A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server\/Instance Specified)" }

Я бы предпочел, чтобы результат выглядел так:

{ "time": "2019-03-01 01:12:07.2239", "level": "Error", "logger": "Scheduler.Api.Startup", "message": "A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)" }

1 Ответ

0 голосов
/ 04 марта 2019

Это похоже на проблему с кодировкой.Попробуйте следующее.

 <attribute name="message" layout="${message}" encode="false"/>

Я бы также рекомендовал включить фактическое исключение в файл макета, например,

 <attribute name="${exception}" layout="${exception:format=toString}" />
...