【问题标题】:Quartz.Net Jobs to Log FileQuartz.Net 作业到日志文件
【发布时间】:2018-09-15 13:48:16
【问题描述】:

我目前正在使用 Quartz.net 和 CronSchedule 创建一个调度程序。我想将有关“作业”的信息(例如执行和完成的时间)发送到 .txt 文件或记录信息的文件中,但我不知道如何处理。

有什么帮助吗?

【问题讨论】:

标签: c# scheduled-tasks quartz-scheduler quartz.net


【解决方案1】:

你可以使用 log4net,我建议为每个 Job 单独记录。

在启动调度程序之前:

var location = System.Reflection.Assembly.GetExecutingAssembly().Location;
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(location + ".config"));

在每个扩展 IJob 的类中(因此,在每个 Job 中):

var logger = log4net.LogManager.GetLogger("TestJobLogger");

"TestJobLogger" 对于每个 Job 显然是不同的。

App.config 中插入这个,一个<logger> 和一个<appender> 用于您拥有的每个工作:

<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
    ...
    <log4net>
    <appender name="AppenderTestJob" type="log4net.Appender.RollingFileAppender">
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
        <datePattern value=".yyyyMMdd-HH" />
        <param name="ImmediateFlush" value="true" />
        <maxSizeRollBackups value="10" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <file type="log4net.Util.PatternString" value="C:\PathToSaveFile\" />
        <datePattern value="'test.'yyyyMMdd'.log'" />
        <staticLogFileName value="false" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date{dd-MM-yyyy HH:mm:ss.fff} [%t] [%-5p] (%c) - %m%n" />
        </layout>
    </appender>
    <root>
        <level value="INFO" />
    </root>
    <logger name="TestJobLogger" additivity="false">
        <level value="INFO" />
        <appender-ref ref="AppenderTestJob" />
    </logger>
</log4net>

现在,您可以简单地使用logger.Debug("TESTTTTTT"); 登录。

【讨论】:

  • 这会创建对 Log4Net 的依赖。您将如何注入 ILogger?
猜你喜欢
  • 2012-06-18
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
相关资源
最近更新 更多