NLog - как записать пользовательские данные в XML - PullRequest
1 голос
/ 15 октября 2011

Привет мне нужна температура журнала в файл XML. Я хотел бы иметь XMl в этом формате

<logs>
   <log>
     <dateTime></dateTime/>
     <value>x</dateTime/>
   <log>
   <log>
     <dateTime></dateTime/>
     <value>x</dateTime/>
   <log>
   <log>
     <dateTime></dateTime/>
     <value>x</dateTime/>
   <log>
</logs>

Сначала я попытался записать данные журнала в текстовый файл с такой конфигурацией:

<targets>
  <target name="logfile" xsi:type="File" fileName="users.log" layout="${date:format=yyyyMMddHHmmss} ${message}" />
  <target name ="xmlFile" xsi:type="File" fileName="log.xml"/>
</targets>

<rules>
  <logger name="*" minlevel="Info"  writeTo="logFile" /> 
</rules>

Проблема в том, что на уровне Info регистрируются все данные, которые мне нужны, регистрируются только пользовательские данные. Я не знаю, какой тип уровня я должен использовать, когда я хочу записать только какую-нибудь строку, например.

Вторая проблема - как создать макет XML?

Ответы [ 2 ]

2 голосов
/ 19 октября 2011

Это не цель nlog.Его цель - помочь вам отладить приложение, записав информацию в один или несколько источников журналов.

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

0 голосов
/ 19 октября 2011

Журнал «пользовательских данных»: используйте log.Trace(...), log.Debug(...), log.Info(...) для достижения различных уровней ведения журнала.

XML-макет: посмотрите на NLog.Layouts и NLog.LayoutRenderers. Примечание: это не относительно простая задача, и, учитывая, что вы не можете понять, как достичь разных уровней ведения журнала, вы можете отложить эту задачу и поработать над своим реальным проектом.

Редактировать: Вы уверены, что не можете просто вывести зарегистрированные данные в обычный текстовый файл в простом формате, а после завершения регистрации проанализировать данные и записать в файл XML?

...