NLog: Създаване на регистър на програма или услуга

Използвам NLog от няколко месеца, просто влизам в регистъра на събитията, но това изобщо не е идеално в никакъв сценарий imho.

Чудя се, възможно ли е да създадете свой собствен регистър на програмата или услугата с NLog? Не изглежда така според списъка с поддържани цели в http://nlog-project.org/wiki/Targets

Някой може ли да хвърли малко светлина върху това?


person Maritim    schedule 23.01.2013    source източник
comment
Можете ли да предоставите повече информация за това, което се опитвате да направите?   -  person Joe    schedule 23.01.2013


Отговори (1)


Можете напълно да създадете приложение, което съхранява и ви показва всички регистрационни файлове на другите ви приложения, но може да се наложи да разширите NLog, това е, което направих за моето работно място. Например :

  1. Създайте обща база данни, която може да съхранява всички регистрационни файлове от NLog и други типове регистрационни файлове, ако е необходимо.

  2. Направете персонализиран Layout Renderer, който създава XML с вашата лог информация (не опитвам XmlEncode LayoutRenderer по времето, когато правя системата си, мисля, че сега ще е страхотно)

  3. Намерете начин да изпратите вашия XML през вашата мрежа, използвах Transactionnal MSMQ, но само не-транзакционната цел съществува в NLog, така че създадох (=копиране-поставяне на оригинала с известно подобрение) моя собствена цел

  4. Създайте услуга, която получава XML на вашия журнал и ги вмъква в базата данни

  5. И накрая, създайте приложение, което използва базата данни, за да ви покаже какво се е случило във вашата среда

Това е силно решение, ако имате време да го направите. За нашата производствена среда това ни спаси много пъти. Но зависи от какво точно се нуждаете

* РЕДАКТИРАНЕ 2013-01-25 : *

За създаване на ваш собствен регистрационен файл в дървото на регистрационните файлове на приложенията и услугите: Вижте тази публикация, която обяснява как да създадете свой собствен дневник и източника на събитие, който върви с

Nlog може също да създаде източник на събитие, ако той не съществува, но както можете да видите в тази публикация приложението се нуждае от разрешение за четене за ключа:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security

Или можете просто да стартирате приложението като администратор.

След като сте създали свой собствен дневник и неговия източник на събития, вече можете да използвате Nlog нормално, с конфигурация като тази:

<targets>
  <target xsi:type="EventLog" name="event" layout="${message}"
          machineName="." log="myLog" source="myEventSource"/>
</targets>
<rules>
  <logger name="myLogger" writeTo="event"/>
</rules>

Дано помогне

person rootoz    schedule 24.01.2013
comment
Просто исках да накарам NLog да настрои журнал в категорията Program and Service в Windows Eventviewer. - person Maritim; 24.01.2013
comment
Съжалявам, не разбрах въпроса ви. Опитвали ли сте да създадете личен изглед в дървото Приложения и услуги и да използвате името на изгледа с параметъра log в целевата конфигурация на EventLog? - person rootoz; 24.01.2013
comment
Да, направих го с библиотеката System.Diagnostiscs, но искам да постигна същото с помощта на NLog, а не System.Diagnostics - person Maritim; 25.01.2013