C# Quartz.Net:如何通过上下文发送类的实例
我希望将记录器对象(NLog)传递到我的作业。 我有一节课C# Quartz.Net:如何通过上下文发送类的实例,c#,quartz.net,C#,Quartz.net,我希望将记录器对象(NLog)传递到我的作业。 我有一节课 public partial class SomeClass { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); public void SomeMethod() { try { _scheduler = StdSchedulerFactory.GetDefaul
public partial class SomeClass
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public void SomeMethod() {
try
{
_scheduler = StdSchedulerFactory.GetDefaultScheduler();
IJobDetail job = JobBuilder.Create<Job>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(5)
.RepeatForever())
.Build();
_scheduler.ScheduleJob(job, trigger);
_scheduler.Start();
}
catch (SchedulerException es)
{
Logger.Trace(es);
Logger.Fatal(es);
}
}
}
public分部类SomeClass
{
私有静态只读记录器Logger=LogManager.GetCurrentClassLogger();
公共方法(){
尝试
{
_scheduler=StdSchedulerFactory.GetDefaultScheduler();
IJobDetail job=JobBuilder.Create()
.WithIdentity(“工作1”、“组1”)
.Build();
ITrigger trigger=TriggerBuilder.Create()
.WithIdentity(“触发器1”、“组1”)
.StartNow()
.使用SimpleSchedule(x=>x
.间隔秒(5)
.RepeatForever())
.Build();
_ScheduleJob(作业,触发器);
_scheduler.Start();
}
捕获(调度)
{
记录器跟踪(es);
致命的(es);;
}
}
}
和工作:
[DisallowConcurrentExecution]
public class Job : IJob
{
private static int i = 0;
/// <inheritdoc />
public Job()
{
}
/// <inheritdoc />
public void Execute(IJobExecutionContext context)
{
var logger = (Logger)context.Get("logger");//How ????
logger.Debug("etc");
}
}
[不允许继续执行]
公开课工作:IJob
{
私有静态int i=0;
///
公职()
{
}
///
public void Execute(IJobExecutionContext上下文)
{
var logger=(logger)context.Get(“logger”);//如何????
logger.Debug(“etc”);
}
}
我如何通过日志记录程序进入我的职业课程?
或者换句话说:如何将记录器置于上下文中?
我找不到关于它的任何信息,即使是在Quartz.Net的官方网站上。我找到了一个解决方案:
类内:
IJobDetail job = JobBuilder.Create<Job>()
.WithIdentity("job1", "group1")
.Build();
job.JobDataMap["logger"] = Logger;
我找到了一个解决方案:
类内:
IJobDetail job = JobBuilder.Create<Job>()
.WithIdentity("job1", "group1")
.Build();
job.JobDataMap["logger"] = Logger;
可能的重复可能的重复