/// <summary> /// Create a new filter instance to use for this Logger. /// Use the DefaultFilterClass property. /// Subclasses may wish to override. /// </summary> /// <returns>A new filter.</returns> protected virtual LogEntryFilter GetDefaultFilter() { LogEntryFilter aFilter = null; try { aFilter = (LogEntryFilter) DefaultFilterClass.GetConstructor(new Type[0]).Invoke(new Object[0]); } catch(Exception ex) { OnLoggingError(this, "Error creating filter", ex); aFilter = new LogEntryPassFilter(); } return aFilter; }
private static Logger Configure(Logger aLogger, ConfigLogger aConfigLogger, LoggerElement aLoggerElement) { aLogger.Application = aConfigLogger.Application; var includeCategories = aLoggerElement.IncludeCategories.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); var excludeCategories = aLoggerElement.ExcludeCategories.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); LogEntryFilter filter = null; if (includeCategories.Length > 0) { filter = new LogEntryCategoryFilter(true); foreach (string cat in includeCategories) ((LogEntryCategoryFilter)filter).AddCategory(cat); } else if (excludeCategories.Length > 0) { filter = new LogEntryCategoryFilter(false); foreach (string cat in excludeCategories) ((LogEntryCategoryFilter)filter).AddCategory(cat); } else { filter = new LogEntryPassFilter(); } aLogger.Filter = filter; aLogger.SeverityThreshold = aLoggerElement.Severity; aLogger.Formatter = new LogEntryFormatStringFormatter((aLoggerElement.FormatString != "" ? aLoggerElement.FormatString : ((LogEntryFormatStringFormatter)aConfigLogger.Formatter).FormatString), aLogger.OnLoggingError); aLogger.Enabled = aLoggerElement.IsEnabled; var resultingLogger = aLoggerElement.IsInsistent ? new InsistentLogger(aLogger, 100, 180) : aLogger; resultingLogger = aLoggerElement.IsAsynchronous ? new AsyncLogger(resultingLogger) : resultingLogger; resultingLogger.Enabled = aLoggerElement.IsEnabled; return resultingLogger; }