ISource IFactory <ISource> .CreateInstance(string entry, IPlugInContext context) { var options = new DelimitedLogParserOptions(); ParseDelimitedParserOptions(context.Configuration, options); if (FileSystemSource.Equals(entry, StringComparison.OrdinalIgnoreCase)) { return(CreateFsSource(context)); } else if (W3SVCLogSource.Equals(entry, StringComparison.OrdinalIgnoreCase)) { return(CreateDelimitedSource(context, new AsyncW3SVCLogParser( context.Logger, context.Configuration[ConfigConstants.DEFAULT_FIELD_MAPPING], options))); } else if (ULSSource.Equals(entry, StringComparison.OrdinalIgnoreCase)) { return(CreateDelimitedSource(context, new AsyncULSLogParser( context.Logger, options.TextEncoding, options.BufferSize))); } else if (ExchangeLogSource.Equals(entry, StringComparison.OrdinalIgnoreCase)) { return(CreateDelimitedSource(context, new AsyncExchangeLogParser( context.Logger, context.Configuration["TimestampField"], options.TextEncoding, options.BufferSize))); } throw new ArgumentOutOfRangeException(nameof(entry), "Unknown entry"); }
public AsyncDelimitedLogParserBase(ILogger logger, string delimiter, DelimitedLogParserOptions options) { _logger = logger; _delimiter = delimiter; _encoding = options.TextEncoding; _bufferSize = options.BufferSize; _trimDataValues = options.TrimDataFields; }
public static void ParseDelimitedParserOptions(IConfiguration config, DelimitedLogParserOptions options) { options.TrimDataFields = bool.TryParse(config["TrimDataFields"], out var trimConfig) && trimConfig; options.TextEncoding = ParseEncoding(config); if (int.TryParse(config[ConfigConstants.BUFFER_SIZE], out var bufferSize)) { options.BufferSize = bufferSize; } }
public AsyncW3SVCLogParser(ILogger logger, string defaultHeaders, DelimitedLogParserOptions options) : base(logger, " ", options) { _defaultHeaders = defaultHeaders; }