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;
     }
 }
Esempio n. 4
0
 public AsyncW3SVCLogParser(ILogger logger, string defaultHeaders, DelimitedLogParserOptions options)
     : base(logger, " ", options)
 {
     _defaultHeaders = defaultHeaders;
 }