【问题标题】:I need to log hangfire to a different SQL table than nlog我需要将 hangfire 记录到与 nlog 不同的 SQL 表
【发布时间】:2020-12-14 20:30:41
【问题描述】:

我们有 nlog 将所有日志保存到特定的数据库表中。 Hangfire 会自动登录到同一个表。我的经理希望将两个日志分开;在一张桌子上登录,在另一张桌子上挂火。我对hangfire完全不熟悉,我希望有人可以提出建议。

【问题讨论】:

  • 我建议通读the documentation,它展示了在添加hangfire 时如何在UseSQLStorage 方法中定义数据库的名称。

标签: c# sql-server backgroundworker hangfire


【解决方案1】:

如果您使用的是 ASP.NET Core,则可以在 Startup 类中为所有 Hangfire 表指定确切的存储空间:

public void ConfigureServices(IServiceCollection services)
{
    services.AddHangfire(config => config.UseXXXStorage());
}

自定义logger的实现方式也可以看hangfire-docs

【讨论】:

  • SqlServerStorageOptions里面,可以配置SchemaName。您还可以使用以下配置行 .UseLogProvider 指定要用于 hanfire 日志的日志提供程序。因此,您可以在此处提供另一个日志提供程序(您的自定义提供程序),并且日志应存储在不同的表中。不要忘记将您的自定义日志也包含在GlobalConfiguration.Configuration.UseLogProvider(new CustomLogProvider());的全局配置中
  • 所以基本上,为了解决您的问题,您可以专门为 Hangfire 日志提供不同的日志提供程序。配置Hangfire特定的日志提供程序登录到另一个数据库表应该没有任何问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-07
  • 1970-01-01
  • 2020-10-01
相关资源
最近更新 更多