1

I'm currently creating a scheduler using Quartz.net with the CronSchedule. I'm wanting to send information regarding the 'Jobs' such as time executed and finished to a .txt file or something which logs the information, however I don't know how to approach this.

Any help?

Harry Tipper
  • 75
  • 3
  • 10

1 Answers1

1

You can use log4net, I suggest to log separate for each Job.

Before to start scheduler:

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

In each class that extends IJob (so, in each Job):

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

Where obviously "TestJobLogger" is different for each Job.

In the App.config insert this, one <logger> and one <appender> for each Job you have:

<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>

Now, you can log simply with logger.Debug("TESTTTTTT");.

luke88
  • 958
  • 19
  • 40