diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2019-11-24 16:39:46 +0200 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2019-11-24 16:39:46 +0200 |
| commit | 6c57a826a4287b1ca3ea418fcc2aed50ed129bdc (patch) | |
| tree | 76a3fc419861d2ebdb9e345a35e58cf37f3cde21 /Software/Visual_Studio/Tango.Integration/Logging/EmbeddedLogFileParser.cs | |
| parent | d2edfc56a8154c01a7ca9cfc47adccc8a07c3d94 (diff) | |
| download | Tango-6c57a826a4287b1ca3ea418fcc2aed50ed129bdc.tar.gz Tango-6c57a826a4287b1ca3ea418fcc2aed50ed129bdc.zip | |
Implemented AutoLogRemoval & MaxFileSizeLimit to FileLogger, LogFileParser and TFS bug reporting!!!
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/Logging/EmbeddedLogFileParser.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.Integration/Logging/EmbeddedLogFileParser.cs | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/Software/Visual_Studio/Tango.Integration/Logging/EmbeddedLogFileParser.cs b/Software/Visual_Studio/Tango.Integration/Logging/EmbeddedLogFileParser.cs index 98a3ac543..72e55bbfd 100644 --- a/Software/Visual_Studio/Tango.Integration/Logging/EmbeddedLogFileParser.cs +++ b/Software/Visual_Studio/Tango.Integration/Logging/EmbeddedLogFileParser.cs @@ -21,7 +21,7 @@ namespace Tango.Integration.Logging FileLogger logger = MachineOperator.EmbeddedLogManager.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(FileLogger)) as FileLogger; String logFile = logger != null ? logger.LogFile : null; - + HashSet<string> dateStrings = new HashSet<string>(); if (Directory.Exists(MachineOperator.EmbeddedLogsFolder)) { foreach (var file in Directory.GetFiles(MachineOperator.EmbeddedLogsFolder, "*.log").Where(x => x != logFile)) @@ -29,8 +29,20 @@ namespace Tango.Integration.Logging try { String dateString = Path.GetFileNameWithoutExtension(file).Replace(MachineOperator.EmbeddedLogsTag + "-", ""); - DateTime date = DateTime.ParseExact(dateString, "dd-MM-yyyy_HH-mm-ss", CultureInfo.InvariantCulture); - logFiles.Add(new LogFile() { DateTime = date, File = file }); + int indexPos = dateString.IndexOf(FileLogger.FILE_SET_EXTENSION); + int indexOfFile = 0; + if (indexPos > 0) + { + string fileNameIndex = dateString.Substring(indexPos + FileLogger.FILE_SET_EXTENSION.Length); + int.TryParse(fileNameIndex, out indexOfFile); + dateString = dateString.Substring(0, indexPos); + } + if (!dateStrings.Contains(dateString)) + { + dateStrings.Add(dateString); + DateTime date = DateTime.ParseExact(dateString, "dd-MM-yyyy_HH-mm-ss", CultureInfo.InvariantCulture); + logFiles.Add(new LogFile() { DateTime = date, File = file, PartOfSet = indexOfFile > 0, }); + } } catch (Exception ex) { @@ -45,8 +57,33 @@ namespace Tango.Integration.Logging public List<EmbeddedLogItem> Parse(LogFile logFile) { List<EmbeddedLogItem> logItems = new List<EmbeddedLogItem>(); + List<LogFile> logFiles = new List<LogFile>(); + FileLogger logger = LogManager.Default.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(FileLogger)) as FileLogger; + if (logFile.PartOfSet) + { + string fileName = Path.GetFileNameWithoutExtension(logFile.File); + string extension = Path.GetExtension(logFile.File); + int indexPos = fileName.IndexOf(FileLogger.FILE_SET_EXTENSION); + if (indexPos > 0) + { + fileName = fileName.Substring(0, indexPos); + } + string[] fileEntries = Directory.GetFiles(FileLogger.DefaultLogsFolder, $"{fileName}*{extension}").Where(x => Path.GetFileName(x).StartsWith(logger.Tag) && x != logger.LogFile).OrderBy(x => x).ToArray(); + foreach (var file in fileEntries) + { + Parse(file, logFile.DateTime, ref logItems); + } + } + else + { + Parse(logFile.File, logFile.DateTime, ref logItems); + } - String text = File.ReadAllText(logFile.File); + return logItems; + } + public void Parse(string file, DateTime datetime, ref List<EmbeddedLogItem> logItems) + { + String text = File.ReadAllText(file); var logs = Regex.Split(text, @"(\[\d{2}:\d{2}:\d{2}.\d{2}\])"); for (int i = 1; i < logs.Length; i += 2) @@ -68,7 +105,7 @@ namespace Tango.Integration.Logging Message = new String(entries[10].Skip(2).ToArray()) }); - item.TimeStamp = new DateTime(logFile.DateTime.Year, logFile.DateTime.Month, logFile.DateTime.Day, date.Hour, date.Minute, date.Second, date.Millisecond); + item.TimeStamp = new DateTime(datetime.Year, datetime.Month, datetime.Day, date.Hour, date.Minute, date.Second, date.Millisecond); logItems.Add(item); } @@ -77,8 +114,6 @@ namespace Tango.Integration.Logging LogManager.Default.Log(ex, "Could not parse log line: " + logs[i]); } } - - return logItems; } } } |
