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(); }
public static BaseLogParser CreateParserByType(EnumLogFile logFormat) { BaseLogParser baseParser = null; string asm = ConfigurationManager.AppSettings[logFormat.ToString()]; if (!string.IsNullOrEmpty(asm)) { object[] pars = new object[] { "", logFormat }; baseParser = (BaseLogParser)Activator.CreateInstance(Type.GetType(asm, true), pars); } return(baseParser); }
public static BaseLogParser CreateParser(string logFile) { BaseLogParser baseParser = null; EnumLogFile logFormat = EnumLogFile.UNKNOWN; if (logFile.StartsWith("--")) { List <EnumLogFile> listLogFormat = new List <EnumLogFile>(); string tmp = logFile.Substring(2); string[] files = tmp.Split(new char[] { ';' }); for (int i = 0; i < files.Length; i++) { if (!string.IsNullOrEmpty(files[i])) { EnumLogFile tmpLog = GetLogFormat(files[i]); if (!listLogFormat.Contains(tmpLog)) { listLogFormat.Add(tmpLog); } } } // check double log format if (listLogFormat.Count > 1) { return(null); } logFormat = listLogFormat[0]; } else { logFormat = GetLogFormat(logFile); } string asm = ConfigurationManager.AppSettings[logFormat.ToString()]; if (!string.IsNullOrEmpty(asm)) { object[] pars = new object[] { logFile, logFormat }; baseParser = (BaseLogParser)Activator.CreateInstance(Type.GetType(asm, true), pars); } return(baseParser); }
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); }