public ILogger Initialize(NLoggerConfigurationSection config = null, bool ignoreConfigurationSection = false) { if (config == null && !ignoreConfigurationSection) { config = ConfigurationManager.GetSection("NLoggerConfiguration") as NLoggerConfigurationSection; } if (config == null) { return(this); } if (config.Root != null) { Root.LoggingLevels = GetLoggingLevels(config.Root); } foreach (NLoggerAppender item in config.Appenders) { var type = item.Type.Split(','); var appender = (ILogAppender)Activator.CreateInstance(type[1].Trim(), type[0].Trim()).Unwrap(); appender.Parameters = item.Parameters; appender.LoggingLevels = GetLoggingLevels(item); if (item.Pattern != null) { appender.LogPattern = item.Pattern.Value; } appender.Name = item.Name; appender.MaxQueueCache = item.MaxQueueSize; appender.TimeBetweenChecks = item.TimeBetweenChecks; if (item.TimeSinceLastWrite != "") { TimeSpan timeSinceLastWrite; if (TimeSpan.TryParse(item.TimeSinceLastWrite, out timeSinceLastWrite)) { appender.TimeSinceLastWrite = timeSinceLastWrite; } } if (item.File != null) { appender.Location = item.File.Location; if (string.IsNullOrEmpty(item.File.MaxSize)) { appender.MaxFileSize = 30000 * 1024; } else { appender.MaxFileSize = Convert.ToInt64(item.File.MaxSize) * 1024; } appender.MaxLogCount = item.File.MaxCount; } Appenders.Add(appender); } return(this); }
/// <summary> /// Add a new appender to the list /// </summary> /// <param name="appender">The appender to be added.</param> public void AddAppender(ILogAppender appender) { Appenders.Add(appender); }