我有我的配置此附加目的地: appender name="TC3DataLogger" type="Intel.STHI.Device.ContextLog.TC3DataLogger" > <file value="null" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <appendToFile value="true" /> <rollingStyle value="Once" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="100MB" /> <datePattern value="-yyyyMMdd-HHmm" /> <layout type="log4net.Layout.PatternLayout"> <header value="Date, CS, FeedbackInput, PWM_Duty_Cycle (Cold='-' Hot='+') "/> <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss}, %message%newline" /> </layout> <filter type="log4net.Filter.LoggerMatchFilter"> <acceptOnMatch value="true" /> <LoggerToMatch value="Intel.STHI.Device.ContextLog.TC3DataLogger" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> </appender>
log4net的使用相同的附加目的地的配置在XML記錄到多個文件
我需要同時登錄多個文件。我創建每個日誌文件是這樣的:
public void CreateNewLogFile(string FileName)
{
IAppender[] appenders = LogManager.GetLogger(TC3Logger.GetType()).Logger.Repository.GetAppenders();
foreach (TC3DataLogger rfa in appenders.OfType<TC3DataLogger>())
{
rfa.File = FileName;
rfa.MaxFileSize = MaxFileSizeKB;
//sub system that the configuration for this appender has changed.
rfa.ActivateOptions();
TC3datalogRFA = rfa;
}
}
現在每次我創建一個新的日誌文件的時間,我的所有其他記錄器,記錄到這個文件。我怎樣才能同時登錄到不同的文件? 我嘗試這樣做:
public void WriteToLog(int CSNum, string Message, string LogfileName)
{
if (!TC3LogsDictionary[CSNum].Logging) return;
TC3LogsDictionary[CSNum].TC3datalogRFA.File = TC3LogsDictionary[CSNum].LogFileName;
TC3LogsDictionary[CSNum].TC3datalogRFA.ActivateOptions();
TC3LogsDictionary[CSNum].TC3Logger.Info(CSNum, Message);
}
,但我得到新的文件,每次我試圖登錄到文件的時間。