2017-02-07 3 views
1

У меня есть один сервер и множество клиентских приложений, везде используется NLog. Целью является почти полное удаление журналов с клиента и отправка журналов с клиента непосредственно на сервер. Это успешно сделано через WCF, ILogReceiverServer и LogReceiverService цель (как написано there).Отправка журналов NLog на сервер через WCF

Но соединение между серверными и клиентскими приложениями может быть потеряно, поэтому необходимо написать Error сообщениям на файл со стороны клиента. И это должно быть написано только тогда, когда соединение потеряно. Я изучил документы NLog (должен был учиться лучше), но ничего не нашел. Можно ли проверить, успешно ли отправлены журналы? Или, может быть, включить/отключить logger на основе результата отправки журналов?

Клиент конфигурации:

<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
     <target name="file" xsi:type="File" ... /> 
     <target name="console" xsi:type="Console" ... /> 
     <target xsi:type="LogReceiverService" 
     name="RemoteWcfLogger" 
     endpointConfigurationName="NetTcpBinding_ILogReceiverServer" 
     endpointAddress="net.tcp://address:port/LogReceiverServer" 
     useBinaryEncoding="True" 
     clientId="" 
     includeEventProperties="True"> 
     </target> 
    </targets> 
    <rules> 
     <logger name="*" minLevel="Trace" writeTo="RemoteWcfLogger"/> 
     <logger name="*" minLevel="Error" writeTo="file" /> 
     <logger name="*" minLevel="Trace" writeTo="console" /> 
    </rules> 
    </nlog> 

ответ

3

Может быть Nlog FallbackGroup-мишень может быть решение:

https://github.com/nlog/NLog/wiki/FallbackGroup-target

Так что, когда первичный целевой выходит из строя, то это будет возврат к вторичной цели ,

+0

Кажется, я пропустил это, именно то, что хочу. Тем не менее, это можно сделать и с помощью пользовательских условий. – Anton

Смежные вопросы