private void InitializeLog()
{
LogManager.GetRepository().ResetConfiguration();
log4net.Appender.RollingFileAppender appenderForInfo = new log4net.Appender.RollingFileAppender();
string assemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location.ToString());
//设置日志名称
appenderForInfo.Name = "DebugInfo";
//设置文件路径
appenderForInfo.File = assemblyPath + "\\debug\\";
//是否在文件中追加
appenderForInfo.AppendToFile = true;
//按照文件的大小进行变换日志文件
//appenderForInfo.RollingStyle = RollingFileAppender.RollingMode.Size;// 保持一个文件,路径:appenderForInfo.File ="..../*.log"
appenderForInfo.RollingStyle = RollingFileAppender.RollingMode.Composite;
//最大变换数量
appenderForInfo.MaxSizeRollBackups = 100;
//最大文件大小
appenderForInfo.MaximumFileSize = "10MB";
//日志文件名是否为静态
appenderForInfo.StaticLogFileName = false;
//日期格式
appenderForInfo.DatePattern = "'INFO_'yyyy-MM-dd'.log'";
//设置输出日志格式
PatternLayout patternLayout = new PatternLayout();
patternLayout.ConversionPattern = "%d [%t] %-5p %c [%x] - %m%n";
appenderForInfo.LockingModel = new FileAppender.MinimalLock();
//启用正则输出
patternLayout.ActivateOptions();
//模式布局
appenderForInfo.Layout = patternLayout;
添加日志等级过滤
//LevelRangeFilter levelRangeFilter = new LevelRangeFilter();
Level级别由低到高:ALL DEBUG INFO WARN ERROR FATAL None
//levelRangeFilter.LevelMax = Level.Info;
//levelRangeFilter.LevelMin = Level.All;
//appenderForInfo.AddFilter(levelRangeFilter);
appenderForInfo.Threshold = log4net.Core.Level.Debug;
//启用当前配置
appenderForInfo.ActivateOptions();
//设置到配置
log4net.Config.BasicConfigurator.Configure(appenderForInfo);
string text = "日志文件初始化成功";
LogInfo.Info(text);
// WriteLog(text);
// WriteLog(" assemblyPath=" + assemblyPath);
}
这个函数最好之初始化一次,否则初始化几次,同一条信息会重复几次;
但加上如下一句可以解决重复的问题
LogManager.GetRepository().ResetConfiguration();