2017-02-07 19 views
1

1つのサーバーと多数のクライアントアプリケーションがあり、どこでもNLogが使用されています。目的は、クライアントからログをほぼ完全に削除し、クライアントからサーバーに直接ログを送信することです。それはWCF、ILogReceiverServerおよびLogReceiverServiceターゲット(thereと書かれている)を使って成功裏に完了しました。WCF経由でNLogログをサーバーに送信

しかし、サーバーとクライアントのアプリケーション間の接続が失われる可能性があるため、クライアント側のファイルに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

関連する問題