public void Analyze() { QueryPerformanceCounter(ref _startTime); LogInfoEventArgs logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.SUCCESS, "Process()", "Starting.."); _synContext.Post(OnAnalyzeLog, logInfo); if (_iisInfo == null) { if (!useExistData) { if (!Verify()) { return; } } else { _parser = LogParserFactory.CreateParserByType(EnumLogFile.W3CEXT); } } else { _parser = LogParserFactory.CreateParserByType(EnumLogFile.W3CEXT); } _parser.ParserID = LogParserId.ToString(); _parser.ParseLogHandler += ParseLogHandler; _parser.UseParallel = _useParallel; if (useExistData) { _logFilePath = Path.GetDirectoryName(_fileName); } else { string path = string.Format("{0}\\Indihiang\\", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)); _logFilePath = String.Format("{0}\\Data\\{1}\\", path, LogParserId.ToString()); } //_finish = false; //if (_dataQueue == null) // _dataQueue = new Thread(DumpData); if (_thread == null) { _thread = new Thread(Process); // original } //_thread = new Thread(ParseLog); _thread.IsBackground = true; _thread.Start(); }
private bool CheckFile() { if (_fileName.StartsWith("--")) { List <string> files = IndihiangHelper.ParseFile(_fileName); LogInfoEventArgs logInfo = null; for (int i = 0; i < files.Count; i++) { if (!string.IsNullOrEmpty(files[i])) { if (!File.Exists(files[i])) { logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.FAILED, "LogParser.CheckFile()", String.Format("{0} isn't found", files[i])); _synContext.Post(OnAnalyzeLog, logInfo); return(false); } } } logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.SUCCESS, "Process()", string.Format("Total log files are {0} files", files.Count.ToString())); _synContext.Post(OnAnalyzeLog, logInfo); } else if (!File.Exists(_fileName)) { LogInfoEventArgs logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.FAILED, "LogParser.CheckFile()", String.Format("{0} isn't found", _fileName)); _synContext.Post(OnAnalyzeLog, logInfo); return(false); } return(true); }
private bool CheckParser() { _parser = LogParserFactory.CreateParser(_fileName); _parser.LogFile = _fileName; _parser.ParserID = LogParserId.ToString(); if (_parser == null) { LogInfoEventArgs logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.FAILED, "LogParser.Verify()", "Application cannot verify log file format or there are more than log file format"); _synContext.Post(OnAnalyzeLog, logInfo); return(false); } return(true); }
private void Process() { Thread.Sleep(100); LogInfoEventArgs logInfo = null; if (_iisInfo != null) { LogFileProcessing(); } logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.SUCCESS, "Process()", "Running log parser..."); _synContext.Post(OnAnalyzeLog, logInfo); if (!useExistData) { if (_fileName.StartsWith("--")) { _parser.LogFile = _fileName; } _parser.Parse(); } logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.SUCCESS, "Process()", "Done"); Thread.Sleep(100); _synContext.Post(OnEndAnalyze, logInfo); }
private void LogFileProcessing() { LogInfoEventArgs logInfo; string message = string.Empty; if (_iisInfo.LocalComputer) { message = "Checking log files..."; } else { message = "Copy remote web server log file into local..."; } #region Logging logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.SUCCESS, "Process()", message); _synContext.Post(OnAnalyzeLog, logInfo); #endregion string sourceFiles = string.Empty; if (!_iisInfo.LocalComputer) { RemoteFileCopyHelper.CopyRemoteFiles(_iisInfo); string path = string.Format("{0}\\Indihiang\\", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)); sourceFiles = String.Format("{0}\\Temp\\{1}{2}\\", path, _iisInfo.RemoteServer, _iisInfo.Id); } else { sourceFiles = String.Format("{0}\\W3SVC{1}\\", _iisInfo.LogPath, _iisInfo.Id); } int total = 0; string[] files = Directory.GetFiles(sourceFiles); if (files != null) { total = files.Length; string file = "--"; for (int i = 0; i < files.Length; i++) { file = String.Format("{0}{1};", file, files[i]); } _parser.LogFile = file; } if (_iisInfo.LocalComputer) { message = "Check log files was done"; } else { message = "Copy remote web server log files into local was done"; } #region logging logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.SUCCESS, "Process()", message); _synContext.Post(OnAnalyzeLog, logInfo); logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.SUCCESS, "Process()", string.Format("Total remote log files are {0} files", total.ToString())); _synContext.Post(OnAnalyzeLog, logInfo); #endregion if (total == 0) { logInfo = new LogInfoEventArgs( LogParserId.ToString(), EnumLogFile.UNKNOWN, LogProcessStatus.SUCCESS, "Process()", "No log file will be analyzed."); _synContext.Post(OnEndAnalyze, logInfo); Thread.Sleep(100); return; } }