#nlog
Вопрос:
У меня мало проблем с JsonLayout
Версия NLog: 4.7.10 Платформа: netcoreapp 3.1
Текущая конфигурация Nlog
<target name="jsonFileMw" xsi:type="File" fileName="logsmw.log"
archiveAboveSize="10240"
maxArchiveDays="5"
archiveNumbering="DateAndSequence"
archiveEvery="Day"
enableArchiveFileCompression="true">
<layout xsi:type="JsonLayout" includeAllProperties="true">
<attribute name="time" layout="${longdate}" />
<attribute name="level" layout="${level:upperCase=true}"/>
<attribute name="message" layout="${message}" />
</layout>
</target>
мой код для входа в систему
_logger.LogInformation("request received. {RequestUrl} {RequestBody}", "some url", "some body");
этот код ведения журнала создает следующую строку журнала:
{ "time": "2021-08-02 15:07:30.8198", "level": "INFO", "message": "request received. some url some body", "RequestUrl": "some url", "RequestBody": "some body" }
Как вы можете видеть, это также добавляет свойства журнала в сообщение, что означает запись одной и той же информации дважды. В результате размер файла журнала увеличивается. Я просто хочу, чтобы сообщение было простым. Желаемый результат ниже:
{ "time": "2021-08-02 15:07:30.8198", "level": "INFO", "message": "request received. {RequestUrl} {RequestBody}", "RequestUrl": "some url", "RequestBody": "some body" }
Как я могу этого достичь?
Комментарии:
1. См. также: github.com/NLog/NLog/issues/4510
Ответ №1:
Вы можете это сделать:
<attribute name="messagetemplate" layout="${message:raw=true}" />
См. также: https://github.com/NLog/NLog/wiki/Message-Layout-Renderer
См. также: https://github.com/NLog/NLog/wiki/How-to-use-structured-logging#output-captured-properties