3 回答

TA贡献1827条经验 获得超8个赞
定义一个不记录任何内容的记录器和日志提供程序:
using Hangfire;
using Hangfire.Logging;
public class NoLoggingProvider : ILogProvider {
public ILog GetLogger(string name) {
return new NoLoggingLogger();
}
}
public class NoLoggingLogger : ILog {
public bool Log(LogLevel logLevel, Func<string> messageFunc, Exception exception = null) {
return false;
}
}
并配置 Hangfire 以在您的Startup课程中使用它:
using Hangfire;
public class Startup {
public void Configuration(IAppBuilder app) {
GlobalConfiguration.Configuration.UseLogProvider(new NoLoggingProvider());
// the rest of your configuration...
}
}

TA贡献1830条经验 获得超9个赞
要开发@PatrickSteele 的答案,您似乎需要使用 SeriLog 的 SourceContent。Hangfire有很多这样的。此代码实现了这一点:
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.Filter.ByExcluding(Matching.FromSource("Hangfire.SqlServer.ExpirationManager"))
.Filter.ByExcluding(Matching.FromSource("Hangfire.SqlServer.SqlServerObjectsInstaller"))
.Filter.ByExcluding(Matching.FromSource("Hangfire.Server.BackgroundServerProcess"))
.Filter.ByExcluding(Matching.FromSource("Hangfire.Server.ServerWatchdog"))
.Filter.ByExcluding(Matching.FromSource("Hangfire.Server.ServerHeartbeatProcess"))
.Filter.ByExcluding(Matching.FromSource("Hangfire.Processing.BackgroundExecution"))
.Filter.ByExcluding(Matching.FromSource("Hangfire.SqlServer.CountersAggregator"))
.Filter.ByExcluding(Matching.FromSource("Hangfire.BackgroundJobServer"))
.CreateLogger();
当然,这是我的配置,它使用 SQL Server 作为日志记录的目标。在这个地方收集来自 Hangfire 的各种资源以包含在您自己的代码中可能会被证明是有用的(尽管这不一定是详尽的)。

TA贡献1806条经验 获得超8个赞
对于点网核心,
在 appsettings.json 中,只需在“MinimumLevel => Override”下添加“Hangfire”,并将值设置为“ Warning ”。这只会记录警告和错误。
如果您设置为“覆盖”,那么它只会记录来自hangfire的错误。
- 3 回答
- 0 关注
- 648 浏览
添加回答
举报