我正在使用 Quartz.Net,我们经常在开发和运行过程中看到失败的情况。虽然这不是一个问题,但我们希望启用某种跟踪,以便在开发中可以看到何时发生失火。
我们可以为此目的 Hook 任何事件吗?理想情况下,我追求的是......
var factory = new StdSchedulerFactory();
var scheduler = factory.GetScheduler();
scheduler.Start();
scheduler.OnMisfire += (e) => {
Console.Out.WriteLine(e);
}
最佳答案
您可以使用触发器监听器来处理此问题,请参阅 Lesson 7: TriggerListeners and JobListeners .
您可以使用history plugin作为构建您自己的日志记录的引用。
示例
class MisfireLogger : TriggerListenerSupport
{
private readonly ILog log = LogManager.GetLogger (typeof (MisfireLogger));
public override void TriggerMisfired (ITrigger trigger)
{
log.WarnFormat("Trigger {0} misfired", trigger.Key);
}
}
scheduler.ListenerManager.AddTriggerListener (new MisfireLogger ());
关于Quartz.Net 如何记录失火,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25669515/