static void Main(string[] args) { ILog log = LogManager.GetLogger("NormalAppender"); CustomRollingFileAppender appender = LogManager.GetRepository() .GetAppenders() .First(x => x is CustomRollingFileAppender) as CustomRollingFileAppender; if (appender.Exception != null) { Console.WriteLine("has error!"); } else { Console.WriteLine("normally."); } for (int i = 0; i < 10; i++) { log.Info(i); } Console.WriteLine("please, press any key."); Console.ReadKey(); Console.WriteLine("age is " + Util.GetAge()); }
private IAppender GetFileAppender(LogListener listener) { var appender = new CustomRollingFileAppender(); if (listener.Params.ContainsKey(TextFileConstants.Append)) { appender.RollingStyle = listener.Params[TextFileConstants.Append] == TextFileConstants.RolloverValue || listener.Params.ContainsKey(TextFileConstants.FilePatternName) ? RollingFileAppender.RollingMode.Composite : RollingFileAppender.RollingMode.Size; } else { appender.RollingStyle = RollingFileAppender.RollingMode.Size; // append default value } var patternLayout = new PatternLayout { ConversionPattern = DeafultPatternLayout }; patternLayout.ActivateOptions(); appender.Layout = patternLayout; appender.LockingModel = new FileAppender.MinimalLock(); appender.AppendToFile = false; appender.AddFilter(new LevelRangeFilter { LevelMin = _levelMap[listener.MinLevel], LevelMax = _levelMap[listener.MaxLevel] }); if (listener.Params.ContainsKey(TextFileConstants.FileName)) { appender.File = listener.Params[TextFileConstants.FileName]; } else { appender.StaticLogFileName = false; // appender.CountDirection = 1; var filePattern = Path.GetFileNameWithoutExtension(listener.Params[TextFileConstants.FilePatternName]); var extention = Path.GetExtension(listener.Params[TextFileConstants.FilePatternName]); var fileNamePrefix = string.Empty; if (!string.IsNullOrEmpty(filePattern)) { if (filePattern.Contains("'")) { int index = filePattern.IndexOf('\'', 1); if (index > 2 && filePattern.Length > 3) { fileNamePrefix = filePattern.Substring(1, index - 1); filePattern = filePattern.Substring(index + 1); } } appender.DatePattern = string.Format("{0}'{1}'", filePattern, extention); } var path = Path.GetDirectoryName(listener.Params[TextFileConstants.FilePatternName]); if (!string.IsNullOrEmpty(path)) { path = path + "\\"; } path = path + fileNamePrefix; appender.File = string.IsNullOrEmpty(path) ? "r" : path; } if (listener.Params.ContainsKey(TextFileConstants.MaxSize)) { appender.MaximumFileSize = listener.Params[TextFileConstants.MaxSize] + "KB"; } if (listener.Params.ContainsKey(TextFileConstants.RollBackBackups)) { appender.MaxSizeRollBackups = int.Parse(listener.Params[TextFileConstants.RollBackBackups]); } if (listener.Params.ContainsKey(TextFileConstants.CountDirection)) { appender.CountDirection = int.Parse(listener.Params[TextFileConstants.CountDirection]); } if (listener.Params.ContainsKey(TextFileConstants.PreserveLogFileNameExtension)) { appender.PreserveLogFileNameExtension = listener.Params[TextFileConstants.PreserveLogFileNameExtension].Equals("true", StringComparison.InvariantCultureIgnoreCase); } appender.ActivateOptions(); return(appender); }