gpt4 book ai didi

c# - Serilog topshelf 集成不起作用

转载 作者:可可西里 更新时间:2023-11-01 08:09:06 24 4
gpt4 key购买 nike

我正在尝试使用 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();
}

关于c# - Serilog topshelf 集成不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28299003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com