У меня есть один сервер и множество клиентских приложений, везде используется 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>
Кажется, я пропустил это, именно то, что хочу. Тем не менее, это можно сделать и с помощью пользовательских условий. – Anton