繁体   English   中英

Serilog topshelf集成无法正常工作

[英]Serilog topshelf integration not working

我正在尝试使用Topshelf和Serilog(分别为Serilog.Extras.Topshelf包)为我的Windows服务设置简单的日志配置。

HostLogger.UseLogger(new SerilogHostLoggerConfigurator(new LoggerConfiguration()
                .WriteTo.RollingFile(AppDomain.CurrentDomain.BaseDirectory + "\\logs\\app-{Date}.log")
                .WriteTo.ColoredConsole()
                .MinimumLevel.Debug()
                .CreateLogger()));
HostFactory.Run(x => {
            x.UseSerilog();
            ...

该服务运行正常,但没有输出,也没有输出到控制台或指定的日志文件(我可以看到正在创建一个但它仍然是空的)。 有没有人使用这两个框架?

第二个调用“x.UseSerilog()”重置TopShelf的HostLogger以使用您尚未配置的Serilog的全局实例(Log.Logger)。

删除第二个调用,日志应该开始工作。

另一种选择是配置全局记录器:

Log.Logger = new LoggerConfiguration()
            .WriteTo.RollingFile(AppDomain.CurrentDomain.BaseDirectory + "\\logs\\app-{Date}.log")
            .WriteTo.ColoredConsole()
            .MinimumLevel.Debug()
            .CreateLogger();

HostFactory.Run(x => {
        // configure TopShelf to use Serilog's global instance.
        x.UseSerilog();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM