3 回答

TA貢獻1827條經(jīng)驗 獲得超8個贊
定義一個不記錄任何內(nèi)容的記錄器和日志提供程序:
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條經(jīng)驗 獲得超9個贊
要開發(fā)@PatrickSteele 的答案,您似乎需要使用 SeriLog 的 SourceContent。Hangfire有很多這樣的。此代碼實現(xiàn)了這一點:
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條經(jīng)驗 獲得超8個贊
對于點網(wǎng)核心,
在 appsettings.json 中,只需在“MinimumLevel => Override”下添加“Hangfire”,并將值設置為“ Warning ”。這只會記錄警告和錯誤。
如果您設置為“覆蓋”,那么它只會記錄來自hangfire的錯誤。
- 3 回答
- 0 關注
- 716 瀏覽
添加回答
舉報