我是hangfire的新手,我试图在asp.net Web API中使用现有的serilog记录器设置一种记录事件的方法。这是我的记录器类:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的启动文件中添加hangfire文档中的代码:
GlobalConfiguration.Configuration
.UseSqlServerStorage(Settings.Instance.NLSContextConnectionString);
app.UseHangfireDashboard();
app.UseHangfireServer();
Run Code Online (Sandbox Code Playgroud)
我的Hangfire运作良好,但是如何启用hangfire使用我的serilog?
Hangfire 可能会在应用程序调用之前初始化并缓存其自己的内部记录器。 CreateLog()
要测试这个理论,请尝试将初始化的代码Log.Logger移至应用程序启动代码的最开头,例如 inGlobal.Application_Start()或类似的代码。
| 归档时间: |
|
| 查看次数: |
1599 次 |
| 最近记录: |