void ProcessLogs<TLogItem>(string serverName, string siteName, string defaultHost, string connectionString, string tableName, string[] files) where TLogItem : LogItem { var parserLoader = new LogParserLoader<TLogItem>(serverName, siteName, defaultHost); using (var bulkPushService = new SqlQueuedBulkPushService<TLogItem>(connectionString, tableName, batch_size) { SynchronousBatches = true, TimerDisabled = true }) { foreach (var file in files) { var parser = parserLoader.LoadFile(file); var counter = 0; do { var logs = parser.ReadNext(1000); bulkPushService.AddRange(logs); counter += parser.LinesRead; } while (parser.LinesRead > 0); Console.WriteLine($"[{file}]: {counter}"); totalCounter += counter; } } }
public SqlBulkLogging() { _bulkPushService = new SqlQueuedBulkPushService <SqlFtpLogEntry>("Server=localhost;Database=IISLogs;Integrated Security=true;", "flexlabs.IIS_FtpLogs", 1000); }