0

NServiceBus 2.6 を使用しています。

log4net.config ファイルを使用し、エンドポイントのコードでログ機能を初期化します。

SetLoggingLibrary.Log4Net(() => 
       XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config")));

NServiceBus.Host.exe を通常どおり実行するとログは記録されますが、/install を使用して Windows サービスとしてデプロイすると、何もログに記録されなくなります。

コードベースの方法を使用すると機能します:

SetLoggingLibrary.Log4Net<RollingFileAppender>(...)

なぜ何か考えはありますか...?

4

1 に答える 1

1

プロセスを Windows サービスとして実行する場合、デフォルトでは現在のディレクトリがバイナリのある場所に設定されません。これは、「log4net.config」を検索すると、実際には c:\windows\system32 で検索されることを意味します。

これを試してください (SetLoggingLibrary が呼び出される前に):

System.IO.Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);

または、コードを次のように変更します。

SetLoggingLibrary.Log4Net(() => 
   XmlConfigurator.ConfigureAndWatch(new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config"))));
于 2012-07-12T11:54:19.727 に答える