private void ReadFile() { if (!File.Exists(_fileToWatch)) { return; } //Factory pattern to decide which class object need to invoke for file parsing ParserFactory parseFact = new ParserFactory(); IParser parser = parseFact.GetParser(ParserFactory.ParserFileEnums.Flat); StreamReader fileReader; using (fileReader = new StreamReader(new FileStream(_fileToWatch, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { if (fileReader.BaseStream.Length == _lastFileLength) return; if (fileReader.BaseStream.Length < _lastFileLength) { //Log file has been trucated/deleted/renamed _lastFileLength = 0; } // Seek to the last file length fileReader.BaseStream.Seek(_lastFileLength, SeekOrigin.Begin); //Now decide which all parameters we need to pass to parse function //ConfigurationFactory configFact=new ConfigurationFactory(); //IConfiguration config = configFact.GetConfiguration(ConfigurationFactory.ConfigurationFileEnums.FlatFile); ConfigurationSettings settings = new ConfigurationSettings(); settings.ConversionPattern = ConversionPattern; settings.FileReader = fileReader; Log2Console.Configuration.Configuration config = new Log2Console.Configuration.Configuration(); config.Configurations = settings; //At runtime call List<LogMessage> logMsgs = parser.Parse(config);//To parse flat file //Notify the UI with the set of messages Notifiable.Notify(logMsgs.ToArray()); // Update the last file length _lastFileLength = fileReader.BaseStream.Position; } }
/// <summary> /// To read data from database log table /// </summary> private void ReadLogTable() { //Factory pattern to decide which class object need to invoke for file parsing ParserFactory parseFact = new ParserFactory(); IParser parser = parseFact.GetParser(ParserFactory.ParserFileEnums.SQL); //Now decide which all parameters we need to pass to parse function ConfigurationSettings settings = new ConfigurationSettings(); settings.FieldList = _fieldList; settings.LogTableName = LogTableName; settings.ConnectionString = ConnectionString; settings.RowsCount = RowsCount; Log2Console.Configuration.Configuration config = new Log2Console.Configuration.Configuration(); config.Configurations = settings; //At runtime call List<LogMessage> logMsgs = parser.Parse(config); // Notify the UI with the set of messages Notifiable.Notify(logMsgs.ToArray()); }