首页 > 解决方案 > 在特定环境(本地主机)中禁用 HangFire 服务器

问题描述

我们有一个预定的 HangFire 作业,每小时运行一次4。但是hangfire 在每个预定的时间间隔都会让控制台充满心跳。当我们在本地运行应用程序以开发新功能(或)调试现有代码时,这会很烦人。我可以通过增加HearbeatInterval配置来减少心跳日志。

本地应用程序和托管开发环境应用程序具有相同的数据库。托管的开发 API 已运行重复作业。因此,除非有必要,否则我不想在我们的本地机器上运行它们(使用 API 开发)(除非我想调试/测试计划的作业)。

由于这对于开发人员来说是一个很常见的场景,我想了解 HangFire 是否提供了一种标准的方法来实现这一点?

注意:我已经通过hangfire标签和 HangFire 文档查看了所有 stackoverflow 问题,以查看这对于没有自定义代码的 OOB 解决方案是否可行。

标签: c#asp.net-corehangfire

解决方案


文档说您可以直接在文件中配置日志记录级别appsettings.json

您可以像这样减少所有 Hangfire 日志的消息数量:

{
  "Logging": {
    "LogLevel": {
      ...
      "Hangfire": "Warning" //Only log warnings from Hangfire
    }
  }
}

但您可能只想排除特定的消息子集。我不确定心跳消息的确切名称空间,但您可以执行以下操作:

{
  "Logging": {
    "LogLevel": {
      ...
      "Hangfire": "Information", //Output information and above for all Hangfire logs
      "Hangfire.Server.ServerWatchdog": "Warning" // but only warnings for the 
                                                  // Hangfire.Server.ServerWatchdog namespace
    }
  }
}

推荐阅读