我创建了一个调度程序项目(使用quartz.net的控制台应用程序),其中包含将要重复执行的几个类(作业)。我使用log4Net创建日志文件,现在每个作业都将它的消息附加到名为scheduler / Scheduler.Info.txt的同一个文件中。我想为每个调度程序作业都有一个不同的文件夹。
我现在拥有的是每一项工作都附加在
上scheduler/scheduler/scheduler.Info.txt
我想要的是:
scheduler/SomeJob1/SomeJobJob1.Info.txt
scheduler/SomeJob2/SomeJobJob2.Info.txt
scheduler/SomeJob3/SomeJobJob3.Info.txt
所以,模式是
scheduler/{CLASS NAME}/{CLASS NAME}.Info.txt
我目前的log4net配置:
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="SchedulerLogFileInfoAppender" />
</root>
<appender name="SchedulerLogFileInfoAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="c:\Scheduler\Scheduler.Info.log" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d{dd/MM/yy HH:mm:ss} - %p - %logger - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="INFO" />
</filter>
</appender>
</log4net>
这是记录消息的工作之一:
public class SomeJob1: IJob
{
private static readonly ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
...
private void DoStuff()
{
logger.Info("THIS IS A MESSAGE");
...
}
}