4

我有一个运行 TopShelf 的小型控制台应用程序,并使用 Serilog 作为我想在其中运行 OWIN 的日志记录工具。但是,一旦我启动应用程序构建器,每条日志消息都会通过跟踪侦听器复制,因此会在控制台上打印两次。

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

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

在我启动虚拟主机之前,我已经在这里找到了这个答案并包含了以下内容:

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

有趣的是:当我在插入这些行后第一次启动应用程序时,它起作用了(例如,双重消息消失了。)。然而,在我清理了我的\bin目录之后,它们又开始出现了。做什么?

请查看我刚刚制作的这张高度专业的图纸,它应该可以进一步解释这个问题:

...

(飞涨)

4

0 回答 0