我正在使用log4net为我的应用程序编写日志文件。我已经将日志文件路径设置如下:
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="D:\MyApp\LogFiles\MyApp_"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
.
.
.日志文件保存在D盘中。如果D盘(默认日志文件位置)不可用/不存在,我如何更改到C盘?是否可以在编码(C#)中这样做,或者我没有选择强制其他用户使用D盘?
发布于 2015-08-13 10:33:22
附加器能够在代码中配置,而不是使用配置文件,因此很容易确定日志文件应该放在代码中的驱动器。更多细节请参考another thread。
发布于 2015-08-14 08:25:47
通过结合@Simonzhao提供的引用,解决方案将如下所示:
public static Logger()
{
PatternLayout patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%date %-5level %message%newline";
patternLayout.ActivateOptions();
RollingFileAppender rollingFileAppender = new RollingFileAppender();
rollingFileAppender.AppendToFile = true;
#region Write the log file into D drive, if D drive is not found, then into E drive, else C drive
var diskDrive = DriveInfo.GetDrives();
if (diskDrive.Where(drive => drive.Name == "D:\\").Count() == 1)
rollingFileAppender.File = @"D:\LogFiles\MyApp_";
else if (diskDrive.Where(drive => drive.Name == "E:\\").Count() == 1)
rollingFileAppender.File = @"E:\LogsFiles\MyApp_";
else
rollingFileAppender.File = @"C:\LogFiles\MyApp_";
#endregion
rollingFileAppender.Layout = patternLayout;
rollingFileAppender.MaxSizeRollBackups = 5;
rollingFileAppender.MaximumFileSize = "5MB";
.
.
.
}https://stackoverflow.com/questions/31978312
复制相似问题