gpt4 book ai didi

hangfire - 使用现有的 serilog 记录 hangfire 事件

转载 作者:行者123 更新时间:2023-12-04 21:08:48 32 4
gpt4 key购买 nike

我是 hangfire 的新手,我正在尝试设置一种方法来使用我现有的 serilog 记录器在 asp.net web api 中记录事件。这是我的记录器类:

public static class LoggerInitializer
{
private static ILogger CreateLog()
{
var settings = Settings.Instance;
Log.Logger = new LoggerConfiguration().
MinimumLevel.Debug().
WriteTo.RollingFile(settings.LoggerDebugDirectory +"Debug-{Date}.txt", restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Debug,
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level}] {Message}{NewLine}{Exception}").
WriteTo.RollingFile(settings.LoggerVerboseDirectory + "Debug-{Date}.txt").
CreateLogger();
return Log.Logger;
}
static ILogger _logger;
public static ILogger GetLogger()
{
if (_logger != null)
return _logger;
return _logger = CreateLog();
}
}

在我的启动文件中,我添加了 hangfire 文档中的代码:
GlobalConfiguration.Configuration
.UseSqlServerStorage(Settings.Instance.NLSContextConnectionString);

app.UseHangfireDashboard();
app.UseHangfireServer();

我的 hangfire 工作得很好,但是我如何启用让 hangfire 使用我的 serilog?

最佳答案

Hangfire 可能在 CreateLog() 之前初始化并缓存了它自己的内部记录器。正在被应用程序调用。

为了测试这个理论,尝试移动初始化 Log.Logger 的代码。到应用程序启动代码的开头,例如在 Global.Application_Start()或类似。

关于hangfire - 使用现有的 serilog 记录 hangfire 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589147/

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