4

TopShelf を実行し、内部で OWIN を実行するログ機能として Serilog を使用する小さなコンソール アプリケーションがあります。ただし、アプリ ビルダーを起動するとすぐに、トレース リスナーを介してすべてのログ メッセージが複製され、コンソールに 2 回出力されます。

// serilog sink configuration
new LoggerConfiguration()
        .WriteTo.Trace()
        ...
        .CreateLogger();

// topshelf
HostLogger.UseLogger(new SerilogLogWriterFactory.SerilogHostLoggerConfigurator());

私はすでにこの回答をここで見つけており、Web ホストを開始する前に以下を含めました。

        webHostOptions.Settings.Add(typeof (ITraceOutputFactory).FullName,
            typeof (WebAppBuilder.NullTraceOutputFactory).AssemblyQualifiedName);
        Trace.Listeners.Remove("HostingTraceListener");

面白いことに、これらの行を挿入した後に最初にアプリケーションを起動したとき、機能しました (たとえば、二重のメッセージはなくなりました)。ただし、\binディレクトリをクリーンアップした後、再び表示されるようになりました。どうする?

この問題をさらに説明するために、私が作成したこの非常に専門的な図を確認してください。

...

(ズーム)

4

0 に答える 0