private Instance() { Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); PatternLayout patternLayout = new PatternLayout(); patternLayout.ConversionPattern = Settings._Main.pattern; patternLayout.ActivateOptions(); RollingFileAppender roller = new RollingFileAppender(); roller.AppendToFile = false; roller.File = Settings._Main.logFolder + Settings._Main.masterLogName; roller.Layout = patternLayout; roller.MaxSizeRollBackups = 5; roller.MaximumFileSize = Settings._Main.masterSize; roller.RollingStyle = RollingFileAppender.RollingMode.Size; roller.AppendToFile = true; log4net.Filter.LevelRangeFilter filter = new log4net.Filter.LevelRangeFilter(); filter.LevelMin = log4net.Core.Level.Error; filter.ActivateOptions(); roller.AddFilter(filter); roller.ActivateOptions(); hierarchy.Root.AddAppender(roller); hierarchy.Configured = true; }
private RollingFileAppender CreateAppender(string appenderName, string fileName, ComonLog.LogLevel logLevel) { PatternLayout layout = new PatternLayout(); layout.ConversionPattern = "%d %-5p %m%n"; layout.ActivateOptions(); RollingFileAppender appender = new RollingFileAppender(); appender.Layout = layout; appender.Name = appenderName; appender.File = fileName; appender.RollingStyle = RollingFileAppender.RollingMode.Composite; //appender.Encoding = Encoding.Unicode; appender.AppendToFile = true; appender.MaximumFileSize = "4MB"; appender.MaxSizeRollBackups = 100; appender.DatePattern = "yyyy-MM-dd"; appender.PreserveLogFileNameExtension = true; appender.StaticLogFileName = false; appender.Threshold = FileAppenderHelper.ConvertLogLevel(logLevel); log4net.Filter.LevelRangeFilter levfilter = new log4net.Filter.LevelRangeFilter(); levfilter.LevelMax = appender.Threshold; levfilter.LevelMin = appender.Threshold; levfilter.ActivateOptions(); appender.AddFilter(levfilter); appender.ActivateOptions(); return(appender); }
public static ILog CreateFileLogger(String name, String path) { ///LevelRangeFilter log4net.Filter.LevelRangeFilter levfilter = new log4net.Filter.LevelRangeFilter(); levfilter.LevelMax = log4net.Core.Level.Fatal; levfilter.LevelMin = log4net.Core.Level.Error; levfilter.ActivateOptions(); //Appender1 log4net.Appender.FileAppender appender1 = new log4net.Appender.FileAppender(); appender1.AppendToFile = true; appender1.File = path + name + ".log"; appender1.ImmediateFlush = true; appender1.LockingModel = new log4net.Appender.FileAppender.MinimalLock(); appender1.Name = name + "FileAppender"; appender1.AddFilter(levfilter); //Appender2 //log4net.Appender.ConsoleAppender appender2 = new log4net.Appender.ConsoleAppender(); //appender2.Name = name + "ConsoleAppender"; //appender2.AddFilter(levfilter); log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout("%date [%thread] %-5level - %message%newline"); layout.ActivateOptions(); appender1.Layout = layout; appender1.ActivateOptions(); //appender2.Layout = layout; //appender2.ActivateOptions(); //log4net.Repository.ILoggerRepository repository = null; //log4net.Repository.ILoggerRepository[] repositories = log4net.LogManager.GetAllRepositories(); //if (repositories != null) // repository = repositories.FirstOrDefault(x => x.Name == "DynamicRepository"); //if (repository == null) // repository = log4net.LogManager.CreateRepository("DynamicRepository"); log4net.Config.BasicConfigurator.Configure(appender1); //log4net.Config.BasicConfigurator.Configure(repository, appender1); //log4net.Config.BasicConfigurator.Configure(repository, appender2); //((log4net.Repository.Hierarchy.Hierarchy)repository).Root.Level = log4net.Core.Level.Info; ((log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository()).Root.AddAppender(appender1); ILog logger = log4net.LogManager.GetLogger(name); return(logger); }
/// <summary> /// 创建高级Appender /// ERROR、FATAL两个级别的输出 /// </summary> /// <returns></returns> private static IAppender CreateFileAppender() { log4net.Filter.LevelRangeFilter levfilter = new log4net.Filter.LevelRangeFilter(); levfilter.LevelMax = log4net.Core.Level.Fatal; levfilter.LevelMin = log4net.Core.Level.Error; levfilter.ActivateOptions(); RollingFileAppender appender = new RollingFileAppender(); appender.AddFilter(levfilter); appender.Name = "errorAppender"; appender.File = "SDK_Logs//Error//"; appender.AppendToFile = true; appender.RollingStyle = RollingFileAppender.RollingMode.Date; appender.DatePattern = "yyyy-MM-dd\".txt\""; appender.StaticLogFileName = false; appender.LockingModel = new FileAppender.MinimalLock(); log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout(); layout.ConversionPattern = "【日志级别】%-5level %n【记录时间】%date{HH:mm:ss,fff} %n【描 述】%message %n %n"; layout.ActivateOptions(); appender.Layout = layout; appender.ActivateOptions(); return(appender); }
static log4net.Appender.RollingFileAppender GetFileAppender(string name, log4net.Core.Level max, log4net.Core.Level min) { //设置过滤器 log4net.Filter.LevelRangeFilter _levfilter = new log4net.Filter.LevelRangeFilter(); _levfilter.LevelMax = max; _levfilter.LevelMin = min; _levfilter.ActivateOptions(); //设计记录格式 log4net.Layout.PatternLayout _layout = new log4net.Layout.PatternLayout("%date [%thread] %-5level - %message%newline"); //Appender1 log4net.Appender.RollingFileAppender _appender = new log4net.Appender.RollingFileAppender(); //设置本Appander的名称 _appender.Name = m_initTime.ToString("HHmmss") + "." + name + ".Appender"; _appender.File = GetLogSavePath() + name + ".log"; //否追加到文件 _appender.AppendToFile = true; _appender.MaxSizeRollBackups = 10; //日志文件名是否为静态 _appender.StaticLogFileName = true; //_appender.DatePattern = ""; //表示是否立即输出到文件,布尔型的。 //_appender.ImmediateFlush //SecurityContext : 比较少应用,对日志进行加密只类的,使用SecurityContextProvider转换。(对日志的保密要求比较高的时候应该可以应用上吧,Log4考虑的还挺周全) //LockingModel : 文件锁类型,RollingFileAppender本身不是线程安全的,如果在程序中没有进行线程安全的限制,可以在这里进行配置,确保写入时的安全。有两中类型:FileAppender.ExclusiveLock 和 FileAppender.MinimalLock _appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Date; //_appender.LockingModel = new log4net.Appender.FileAppender.MinimalLock(); _appender.Layout = _layout; _appender.AddFilter(_levfilter); _appender.ActivateOptions(); return(_appender); }
private Instance() { string AppDataPath = T1.Log.Settings._Main.logFolder; try { Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); PatternLayout patternLayout = new PatternLayout(); patternLayout.ConversionPattern = T1.Log.Settings._Main.pattern; patternLayout.ActivateOptions(); RollingFileAppender roller = new RollingFileAppender(); roller.AppendToFile = false; roller.File = AppDataPath + T1.Log.Settings._Main.masterLogName; roller.Layout = patternLayout; roller.MaxSizeRollBackups = Settings._Main.numberOfLogs; roller.MaximumFileSize = T1.Log.Settings._Main.masterSize; roller.RollingStyle = RollingFileAppender.RollingMode.Size; roller.AppendToFile = true; log4net.Filter.LevelRangeFilter filter = new log4net.Filter.LevelRangeFilter(); filter.LevelMin = log4net.Core.Level.Error; filter.ActivateOptions(); roller.AddFilter(filter); roller.ActivateOptions(); hierarchy.Root.AddAppender(roller); hierarchy.Configured = true; } catch (Exception er) { using (StreamWriter sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\FatalLogError.log", true)) { sw.WriteLine(er.Message); } } }
public static log4net.Appender.IAppender CreateFileAppender(string name, string fileName, string levelName) { log4net.Appender.RollingFileAppender appender = new log4net.Appender.RollingFileAppender(); appender.Name = name + Settings._Main.appenderSufix; appender.File = Settings._Main.logFolder + fileName + ".log"; appender.AppendToFile = true; appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Size; appender.MaxSizeRollBackups = 5; appender.MaximumFileSize = Settings._Main.masterSize; appender.CountDirection = 1; log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout(); layout.ConversionPattern = Settings._Main.pattern; layout.ActivateOptions(); log4net.Filter.LevelRangeFilter filter = new log4net.Filter.LevelRangeFilter(); switch (levelName) { case "All": filter.LevelMin = log4net.Core.Level.All; break; case "Alert": filter.LevelMin = log4net.Core.Level.Alert; break; case "Debug": filter.LevelMin = log4net.Core.Level.Debug; break; case "Critical": filter.LevelMin = log4net.Core.Level.Critical; break; case "Error": filter.LevelMin = log4net.Core.Level.Error; break; case "Fatal": filter.LevelMin = log4net.Core.Level.Fatal; break; case "Info": filter.LevelMin = log4net.Core.Level.Info; break; case "Warn": filter.LevelMin = log4net.Core.Level.Warn; break; default: filter.LevelMin = log4net.Core.Level.All; break; } filter.ActivateOptions(); appender.Layout = layout; appender.AddFilter(filter); appender.ActivateOptions(); return(appender); }
public static log4net.Appender.IAppender CreateFileAppender(string name, string fileName, string levelName) { string AppDataPath = T1.Log.Settings._Main.logFolder; log4net.Appender.RollingFileAppender appender = new log4net.Appender.RollingFileAppender(); try { appender.Name = name + T1.Log.Settings._Main.appenderSufix; appender.File = AppDataPath + fileName + ".log"; appender.AppendToFile = true; appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Size; appender.MaxSizeRollBackups = Settings._Main.numberOfLogs; appender.MaximumFileSize = T1.Log.Settings._Main.masterSize; appender.CountDirection = 1; log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout(); layout.ConversionPattern = T1.Log.Settings._Main.pattern; layout.ActivateOptions(); log4net.Filter.LevelRangeFilter filter = new log4net.Filter.LevelRangeFilter(); switch (levelName) { case "All": filter.LevelMin = log4net.Core.Level.All; break; case "Alert": filter.LevelMin = log4net.Core.Level.Alert; break; case "Debug": filter.LevelMin = log4net.Core.Level.Debug; break; case "Critical": filter.LevelMin = log4net.Core.Level.Critical; break; case "Error": filter.LevelMin = log4net.Core.Level.Error; break; case "Fatal": filter.LevelMin = log4net.Core.Level.Fatal; break; case "Info": filter.LevelMin = log4net.Core.Level.Info; break; case "Warn": filter.LevelMin = log4net.Core.Level.Warn; break; default: filter.LevelMin = log4net.Core.Level.All; break; } filter.ActivateOptions(); appender.Layout = layout; appender.AddFilter(filter); appender.ActivateOptions(); } catch (Exception er) { using (StreamWriter sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\\FatalLogError.log", true)) { sw.WriteLine(er.Message); } } return(appender); }
/// <summary> /// Setup Log4net in code. <para>*Time to get rid of Config.xml hah?</para> /// </summary> public override void Configure(Assembly sourceAssembly, ILoggerRepository targetRepository) { Hierarchy hierarchy = (Hierarchy)targetRepository; //Universal layout pattern. PatternLayout patternLayout = new PatternLayout(); //patternLayout.Header = "[task time=%date{HH:mm:ss,fff}]%newline"; //patternLayout.Footer = "[/task]%newline"; patternLayout.ConversionPattern = @"%-5level %date{yyyy/MM/dd_HH:mm:ss,fff} [%thread]] - %message%newline"; patternLayout.ActivateOptions(); log4net.Filter.LevelRangeFilter rangeFilter = new log4net.Filter.LevelRangeFilter { LevelMax = Level.Fatal, LevelMin = Level.Info }; rangeFilter.ActivateOptions(); //MainLogger.(in log4net root) RollingFileAppender mainRoller = new RollingFileAppender { AppendToFile = true, //Save all log to the same file. RollingStyle = RollingFileAppender.RollingMode.Date, //Make a new log file every day. File = @"logs\mainlog.log", Layout = patternLayout, LockingModel = new FileAppender.MinimalLock(), MaxSizeRollBackups = 10, MaximumFileSize = "1000KB", StaticLogFileName = true }; mainRoller.AddFilter(rangeFilter); //don't know what this does. I think I should put it here anyway. mainRoller.ActivateOptions(); hierarchy.Root.AddAppender(mainRoller); hierarchy.Root.Level = Level.All; hierarchy.Name = "MainLogs"; hierarchy.Configured = true; //Uploader Logger. RollingFileAppender UploadRoller = new RollingFileAppender { AppendToFile = true, RollingStyle = RollingFileAppender.RollingMode.Date, File = @"logs\Uploader.log", Layout = patternLayout, MaxSizeRollBackups = 10, MaximumFileSize = "1GB", StaticLogFileName = true }; UploadRoller.AddFilter(rangeFilter); UploadRoller.ActivateOptions(); //Add make a new logger that use this config. ILog _uploadLogger = LogManager.GetLogger("UploaderLogs"); var uploadLogger = (Logger)_uploadLogger.Logger; uploadLogger.Level = Level.All; uploadLogger.AddAppender(UploadRoller); uploadLogger.Repository.Configured = true; //Ohter logs will all go here. RollingFileAppender OtherLogs = new RollingFileAppender { AppendToFile = true, RollingStyle = RollingFileAppender.RollingMode.Date, File = @"logs\Others.log", Layout = patternLayout, LockingModel = new FileAppender.MinimalLock(), //this should allow mutiple instances writing to same file. MaxSizeRollBackups = 10, MaximumFileSize = "1GB", StaticLogFileName = true }; OtherLogs.AddFilter(rangeFilter); OtherLogs.ActivateOptions(); ILog _otherLogger = LogManager.GetLogger("OtherLogs"); var otherLogger = (Logger)_otherLogger.Logger; otherLogger.Level = Level.All; otherLogger.AddAppender(OtherLogs); otherLogger.Repository.Configured = true; }
private RollingFileAppender CreateAppender(string appenderName, string fileName, ComonLog.LogLevel logLevel) { PatternLayout layout = new PatternLayout(); layout.ConversionPattern = "%d %-5p %m%n"; layout.ActivateOptions(); RollingFileAppender appender = new RollingFileAppender(); appender.Layout = layout; appender.Name = appenderName; appender.File = fileName; appender.RollingStyle = RollingFileAppender.RollingMode.Composite; //appender.Encoding = Encoding.Unicode; appender.AppendToFile = true; appender.MaximumFileSize = "4MB"; appender.MaxSizeRollBackups = 100; appender.DatePattern = "yyyy-MM-dd"; appender.PreserveLogFileNameExtension = true; appender.StaticLogFileName = false; appender.Threshold = FileAppenderHelper.ConvertLogLevel(logLevel); log4net.Filter.LevelRangeFilter levfilter = new log4net.Filter.LevelRangeFilter(); levfilter.LevelMax = appender.Threshold; levfilter.LevelMin = appender.Threshold; levfilter.ActivateOptions(); appender.AddFilter(levfilter); appender.ActivateOptions(); return appender; }