Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 /// <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);
 }