Example #1
0
 /// <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;
 }
Example #2
0
        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;
        }