Enterprise Library を使用してログを記録する多くのアプリケーションがサーバー上で実行されています。これらすべてのアプリケーションが呼び出すことができる共通のロギング サービスとして機能するロギング サービスを開発したいと考えています。そうすれば、アプリケーションはすべて単一のログ ファイルにロギングされ、中央のロガーがすべての設定を制御します。このサービスがどのように見えるべきかについて、いくつかの設計ソリューションを探していました。.net リモート処理または WCF インターフェイスが公開された Windows サービスである必要がありますか?
2 に答える
Enterprise Library には、使用できるリモート ログ サービスがあります: http://nuget.org/packages/EnterpriseLibrary.Logging.Service/。
当初は Silverlight Integration Pack と共にリリースされましたが、単なる WCF サービスです。
IPC チャネルで .NET Remoting を使用することをお勧めします。
ここにチュートリアル/例があります: http://www.codeguru.com/csharp/csharp/cs_syntax/remoting/article.php/c9251/NET-Remoting-Using-a-New-IPC-Channel.htm
この方法は、複数のアプリ/サービス間のプロセス間通信に何度も使用しました。
また、log4net などの使用を検討しましたか? とてもパワフルです。
http://logging.apache.org/log4net/
私は EntLib のログ記録コードにあまり詳しくありませんが、log4net は素晴らしいです。
もう 1 つのオプションは、すべてのアプリが利用する単一の共有アセンブリ/プロジェクトをビルドすることです。この方法では、バックグラウンドで実行されているサービスは必要ありませんが、コードはすべてのアプリで同じです。