【问题标题】:Hangfire does not log exception using configured LoggerHangfire 不使用配置的 Logger 记录异常
【发布时间】:2018-05-08 18:13:21
【问题描述】:

根据hangfire documentation

从 Hangfire 1.3.0 开始,你不需要做任何事情,如果 您的应用程序已通过以下方式使用以下库之一 反射(因此 Hangfire 本身不依赖于任何 他们)。通过检查自动选择日志记录实现 对应类型的存在顺序如下所示。

Serilog
NLog
Log4Net
EntLib
记录
放大镜
艾尔玛

我有使用Serilog 的 ASP.NET Core 2.0 应用程序,如下所示

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseApplicationInsights()
        .UseUrls("http://*:40006")
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
           // removed for bravity
        })
        .ConfigureLogging((hostingContext, logging) =>
        {                
                Log.Logger = new LoggerConfiguration()
                .ReadFrom.Configuration(hostingContext.Configuration)
                .CreateLogger();

                logging.AddSerilog();

        })
        .Build();
}

应用程序配置为使用 Hangfire。在后台作业处理过程中,如果发生任何异常,Hangfire 会按预期重新尝试作业 10 次并增加延迟,并在仪表板中显示异常。

问题
Hangfire 仪表板在 UI 上显示异常,但它不会将异常记录到配置的 Serilog 接收器中。

注意:Hangfire 仪表板会显示异常,但会格式化异常 see here,从而隐藏有关异常的关键信息。 我认为如果它记录异常,Serilog 记录器会记录完整的异常。

【问题讨论】:

    标签: hangfire hangfire-unity hangfire-sql


    【解决方案1】:

    我在使用 .NET Core 3.1 的最新 Hangfire 版本中遇到了同样的问题。

    解决方法是在StartUp.cs中调用IGlobalConfigurationUseSerilogLogProvider()方法。

    例如:

     GlobalConfiguration.Configuration.UseSerilogLogProvider();
    

    services.AddHangfire(configuration => configuration
     .UseSimpleAssemblyNameTypeSerializer()
     .UseRecommendedSerializerSettings()
     .UseSerilogLogProvider());
    

    通常不需要此调用,但在某些情况下自动连接不起作用(例如引用多个日志记录提供程序)。您可以在 Hangfire 官方文档中阅读更多相关信息:Configure Logging

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      相关资源
      最近更新 更多