public void Check_Entry_Two_73x_Is_Parsed() { var entry = EntriesToMatch_73x[1]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); TestContext.WriteLine(data); var expectedDate = DateTime.Parse("2016-01-21 22:16:42"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("WARN")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Web.UmbracoModule")); Assert.That(data.Message, Does.StartWith("Status code is 404 yet TrySkipIisCustomErrors is false - IIS will take over.")); Assert.That(data.ThreadId, Is.EqualTo("30")); Assert.That(data.ProcessId, Is.EqualTo("10176")); Assert.That(data.DomainId, Is.EqualTo("4")); }
public void LogFile_Parsing_Performance() { const int Iterations = 1; // how many times we run parse the file TimeSpan totalStream = TimeSpan.Zero; int countStream = 0; Stopwatch sw = new Stopwatch(); var file = Configuration.UmbracoBigFile; // the big file to use /* This uses the stream version that reads one entry at a time */ for (int i = 0; i < Iterations; i++) { sw.Reset(); sw.Start(); var logFile = Path.Combine(Configuration.TestLogsDirectory, file); LogDataService dataService = new LogDataService(); countStream = dataService.GetLogDataFromFilePath(logFile) //It's IEnumerable = lazy executed so we need to iterate it .Count(); sw.Stop(); totalStream = totalStream.Add(sw.Elapsed); } Trace.Write("Elapsed Time Stream: " + totalStream); }
public void Check_Entry_One_Is_Parsed() { var entry = EntriesToMatch[0]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.IsNotNull(data); var expectedDate = DateTime.Parse("2016-01-21 22:14:10.559"); Assert.AreEqual(expectedDate, data.Date); Assert.AreEqual("INFO", data.Level); Assert.AreEqual("Umbraco.Core.CoreBootManager", data.Logger); Assert.AreEqual("Umbraco 7.3.0 application starting on COMPUTER", data.Message.Substring(0, 46)); Assert.AreEqual("1", data.ThreadId); Assert.AreEqual("10176", data.ProcessId); Assert.AreEqual("2", data.DomainId); }
public void Check_Entry_One_73x_Is_Parsed() { var entry = EntriesToMatch_73x[0]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2016-01-21 22:14:10"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("INFO")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Core.CoreBootManager")); Assert.That(data.Message, Does.StartWith("Umbraco 7.3.0 application starting on COMPUTER")); Assert.That(data.ThreadId, Is.EqualTo("1")); Assert.That(data.ProcessId, Is.EqualTo("10176")); Assert.That(data.DomainId, Is.EqualTo("2")); }
public void Check_Entry_Three_73x_Is_Parsed() { var entry = EntriesToMatch_73x[2]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2016-01-21 22:16:47"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("ERROR")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Web.WebApi.Filters.AngularAntiForgeryHelper")); Assert.That(data.Message, Does.StartWith("Could not validate XSRF token")); Assert.That(data.Message, Does.EndWith("at Umbraco.Web.WebApi.Filters.AngularAntiForgeryHelper.ValidateTokens(String cookieToken, String headerToken)")); Assert.That(data.ThreadId, Is.EqualTo("7")); Assert.That(data.ProcessId, Is.EqualTo("10176")); Assert.That(data.DomainId, Is.EqualTo("4")); }
public void Check_Entry_Five_Is_Parsed() { var entry = EntriesToMatch[4]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.IsNotNull(data); var expectedDate = DateTime.Parse("2015-11-17 09:03:59.502"); Assert.AreEqual(expectedDate, data.Date); Assert.AreEqual("ERROR", data.Level); Assert.AreEqual("Umbraco.Core.UmbracoApplicationBase", data.Logger); Trace.Write(data.Message); Assert.IsTrue(data.Message.StartsWith("An unhandled exception occurred")); Assert.IsTrue(data.Message.EndsWith("And lots of other messages here some with square brackets in like [these]...")); Assert.AreEqual("1", data.ThreadId); Assert.AreEqual("5308", data.ProcessId); Assert.AreEqual("2", data.DomainId); }
public void Check_Entry_Seven_Is_Parsed() { var entry = EntriesToMatch[6]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.IsNotNull(data); var expectedDate = DateTime.Parse("2015-08-26 17:08:16.209"); Assert.AreEqual(expectedDate, data.Date); Assert.AreEqual("INFO", data.Level); Assert.AreEqual("Umbraco.Web.Scheduling.BackgroundTaskRunner", data.Logger); Assert.AreEqual("[KeepAlive] Terminating", data.Message); Assert.AreEqual("33", data.ThreadId); Assert.AreEqual("3732", data.ProcessId); Assert.AreEqual("16", data.DomainId); }
public void Check_Entry_Four_72x_Is_Parsed() { var entry = EntriesToMatch_72x[3]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-08-10 20:17:01.788"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("INFO")); Assert.That(data.Logger, Is.EqualTo("umbraco.BusinessLogic.Log")); Assert.That(data.Message, Is.EqualTo("Log scrubbed. Removed all items older than 2015-06-11 20:17:01")); Assert.That(data.ThreadId, Is.EqualTo("21")); Assert.That(data.ProcessId, Is.EqualTo("7388")); Assert.That(data.DomainId, Is.EqualTo("16")); }
public void Check_Entry_Five_72x_Is_Parsed() { var entry = EntriesToMatch_72x[4]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-08-10 20:10:09.043"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("ERROR")); Assert.That(data.Logger, Is.EqualTo("UmbracoExamine.DataServices.UmbracoLogService")); Assert.That(data.Message, Does.StartWith("Provider=InternalMemberIndexer, NodeId=-1")); Assert.That(data.Message, Does.EndWith("System.Exception: Cannot index queue items, the index doesn't exist!,, IndexSet: InternalMemberIndexSet")); Assert.That(data.ThreadId, Is.EqualTo("1")); Assert.That(data.ProcessId, Is.EqualTo("7389")); Assert.That(data.DomainId, Is.EqualTo("2")); }
public void Check_Entry_Two_72x_Is_Parsed() { var entry = EntriesToMatch_72x[1]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-08-10 20:10:24.363"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("WARN")); Assert.That(data.Logger, Is.EqualTo("umbraco.content")); Assert.That(data.Message, Is.EqualTo("Failed to load Xml, file does not exist.")); Assert.That(data.ThreadId, Is.EqualTo("21")); Assert.That(data.ProcessId, Is.EqualTo("7388")); Assert.That(data.DomainId, Is.EqualTo("9")); }
public void Check_Entry_Three_72x_Is_Parsed() { var entry = EntriesToMatch_72x[2]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-08-10 20:12:51.344"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("ERROR")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Core.UmbracoApplicationBase")); Assert.That(data.Message, Does.StartWith("An unhandled exception occurred")); Assert.That(data.Message, Does.EndWith("at Umbraco.Core.UmbracoApplicationBase.Application_Start(Object sender, EventArgs e)")); Assert.That(data.ThreadId, Is.EqualTo("50")); Assert.That(data.ProcessId, Is.EqualTo("7388")); Assert.That(data.DomainId, Is.EqualTo("12")); }
public void Check_Entry_Seven_73x_Is_Parsed() { var entry = EntriesToMatch_73x[6]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-08-26 17:08:16.209"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("INFO")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Web.Scheduling.BackgroundTaskRunner")); Assert.That(data.Message, Is.EqualTo("[KeepAlive] Terminating")); Assert.That(data.ThreadId, Is.EqualTo("33")); Assert.That(data.ProcessId, Is.EqualTo("3732")); Assert.That(data.DomainId, Is.EqualTo("16")); }
public async Task Invoke(HttpContext context) { try { await _next(context); } catch (HttpStatusCodeException e) { LogDataService logDataService = new LogDataService(new MongoLogDataDal()); await logDataService.Add(new Common.CustomDTO.LogDataDTO() { Message = e.Message+"\r\n"+e.StackTrace+"\r\n"+ (e.InnerException != null ? e.InnerException.Message : ""), CorrelationId = context.Connection.Id, IpAdress = context.Connection.LocalIpAddress + "#" + context.Connection.RemoteIpAddress, RequestInfo = context.Request.Path, Type = context.Request.Method == "GET" ? 0 : 1, LogDate = DateTime.Now, StatusCode = "400", Id = ObjectId.GenerateNewId(), ElapsedTime = 1 }); context.Response.Clear(); context.Response.StatusCode = e.StatusCode; context.Response.ContentType = e.ContentType; await context.Response.WriteAsync(e.Message); } }
public void Check_Entry_Six_73x_Is_Parsed() { var entry = EntriesToMatch_73x[5]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-12-14 10:26:51"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("INFO")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Core.UmbracoApplicationBase")); Assert.That(data.Message, Does.StartWith("Application shutdown. Details: ConfigurationChange")); Assert.That(data.Message, Does.EndWith("at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()")); Assert.That(data.ThreadId, Is.EqualTo("9")); Assert.That(data.ProcessId, Is.EqualTo("8060")); Assert.That(data.DomainId, Is.EqualTo("2")); }
public void Check_Entry_Three_Is_Parsed() { var entry = EntriesToMatch[2]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.IsNotNull(data); var expectedDate = DateTime.Parse("2016-01-21 22:16:47.114"); Assert.AreEqual(expectedDate, data.Date); Assert.AreEqual("ERROR", data.Level); Assert.AreEqual("Umbraco.Web.WebApi.Filters.AngularAntiForgeryHelper", data.Logger); Assert.IsTrue(data.Message.Contains("at Umbraco.Web.WebApi.Filters.AngularAntiForgeryHelper.ValidateTokens(String cookieToken, String headerToken)")); Assert.AreEqual("7", data.ThreadId); Assert.AreEqual("10176", data.ProcessId); Assert.AreEqual("4", data.DomainId); }
public void Check_Entry_Five_73x_Is_Parsed() { var entry = EntriesToMatch_73x[4]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-11-17 09:03:59"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("ERROR")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Core.UmbracoApplicationBase")); Assert.That(data.Message, Does.StartWith("An unhandled exception occurred")); Assert.That(data.Message, Does.EndWith("And lots of other messages here some with square brackets in like [these]...")); Assert.That(data.ThreadId, Is.EqualTo("1")); Assert.That(data.ProcessId, Is.EqualTo("5308")); Assert.That(data.DomainId, Is.EqualTo("2")); }
public void Check_Entry_Four_Is_Parsed() { var entry = EntriesToMatch[3]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.IsNotNull(data); var expectedDate = DateTime.Parse("2015-09-16 16:41:08.651"); Assert.AreEqual(expectedDate, data.Date); Assert.AreEqual("ERROR", data.Level); Assert.AreEqual("umbraco.content", data.Logger); Trace.Write(data.Message); Assert.IsTrue(data.Message.StartsWith("Failed to load Xml from file.")); Assert.AreEqual("42", data.ThreadId); Assert.AreEqual("7548", data.ProcessId); Assert.AreEqual("8", data.DomainId); }
public void Check_Entry_Seven_72x_Is_Parsed() { var entry = EntriesToMatch_72x[6]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2016-01-20 11:11:28.402"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("WARN")); Assert.That(data.Logger, Is.EqualTo("Server: NOT AVAILABLE Url: http://NOT AVAILABLENOT AVAILABLE Umbraco.Core.Services.ApplicationTreeService")); Assert.That(data.Message, Does.StartWith(@"The tree definition: <add initialize=""true"" sortOrder=""0"" alias=""censusTree"" application=""developer"" title=""Census"" iconClosed=""icon-folder"" iconOpen=""icon-folder-open"" type=""Census.Controllers.CensusTreeController, Census"" /> could not be resolved to a .Net object type")); Assert.That(data.ThreadId, Is.EqualTo("19")); Assert.That(data.ProcessId, Is.EqualTo("12108")); Assert.That(data.DomainId, Is.EqualTo("2")); }
public void Check_Entry_Six_Is_Parsed() { var entry = EntriesToMatch[5]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.IsNotNull(data); var expectedDate = DateTime.Parse("2015-12-14 10:26:51.147"); Assert.AreEqual(expectedDate, data.Date); Assert.AreEqual("INFO", data.Level); Assert.AreEqual("Umbraco.Core.UmbracoApplicationBase", data.Logger); Trace.Write(data.Message); Assert.IsTrue(data.Message.StartsWith("Application shutdown. Details: ConfigurationChange")); Assert.IsTrue(data.Message.EndsWith("at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()")); Assert.AreEqual("9", data.ThreadId); Assert.AreEqual("8060", data.ProcessId); Assert.AreEqual("2", data.DomainId); }
public void Check_Entry_Four_73x_Is_Parsed() { var entry = EntriesToMatch_73x[3]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-09-16 16:41:08"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("ERROR")); Assert.That(data.Logger, Is.EqualTo("umbraco.content")); Assert.That(data.Message, Does.StartWith("Failed to load Xml from file.")); Assert.That(data.Message, Does.EndWith("at umbraco.content.LoadXmlFromFile()")); Assert.That(data.ThreadId, Is.EqualTo("42")); Assert.That(data.ProcessId, Is.EqualTo("7548")); Assert.That(data.DomainId, Is.EqualTo("8")); }
public void Check_Entry_Two_Is_Parsed() { var entry = EntriesToMatch[1]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.IsNotNull(data); var expectedDate = DateTime.Parse("2016-01-21 22:16:42.289"); Assert.AreEqual(expectedDate, data.Date); Assert.AreEqual("WARN", data.Level); Assert.AreEqual("Umbraco.Web.UmbracoModule", data.Logger); Assert.AreEqual("Status code is 404 yet TrySkipIisCustomErrors is false - IIS will take over.", data.Message); Assert.AreEqual("30", data.ThreadId); Assert.AreEqual("10176", data.ProcessId); Assert.AreEqual("4", data.DomainId); }
public void Should_Match_All_Log_Entries() { foreach (var entry in EntriesToMatch) { var match = LogDataService.CheckIsLongEntryMatch(entry); Assert.AreEqual(true, match.Success, "The entry '{0}' was not considered a match", entry); } }
public void Should_Match_All_Umbraco_73x_Entries() { foreach (var entry in EntriesToMatch_73x) { var match = LogDataService.CheckIsLongEntryMatch(entry); Assert.That(match.Success, "The entry '{0}' was not considered a match", entry); } }
public void Should_Read_Umbraco72x_LogFile_Stream() { var logFile = Path.Combine(Configuration.TestLogsDirectory, Configuration.UmbracoBigFile); TestContext.WriteLine(logFile); LogDataService dataService = new LogDataService(); var logData = dataService.GetLogDataStreamFromFilePath(logFile); }
public void LogFile_Profiling_Tests() { const int Iterations = 3; // how many times we run parse the file TimeSpan totalStream = TimeSpan.Zero; TimeSpan totalReadAll = TimeSpan.Zero; Stopwatch sw = new Stopwatch(); var file = Configuration.UmbracoBigFile; // the big file to use /* This test uses the standard read all lines into memory */ for (int i = 0; i < Iterations; i++) { sw.Reset(); sw.Start(); var logFile = Path.Combine(Configuration.TestLogsDirectory, file); LogDataService dataService = new LogDataService(); var logData = dataService.GetLogDataFromFilePath(logFile); sw.Stop(); totalReadAll = totalReadAll.Add(sw.Elapsed); } /* This uses the stream version that reads one entry at a time */ for (int i = 0; i < Iterations; i++) { sw.Reset(); sw.Start(); var logFile = Path.Combine(Configuration.TestLogsDirectory, file); LogDataService dataService = new LogDataService(); var logData = dataService.GetLogDataStreamFromFilePath(logFile); sw.Stop(); totalStream = totalStream.Add(sw.Elapsed); } TestContext.WriteLine("Elapsed Time ReadAll: {0}\n", totalReadAll); TestContext.WriteLine("Elapsed Time Stream: {0}\n", totalStream); if (totalReadAll < totalStream) { TestContext.WriteLine("Read All is faster than Read Stream by {0}", totalStream - totalReadAll); } else { TestContext.WriteLine("Read Stream is faster than Read All by {0}", totalReadAll - totalStream); } }
public void Should_Read_Umbraco73x_LogFile() { var logFile = Path.Combine(Configuration.TestLogsDirectory, Configuration.Umbraco73xFile); LogDataService dataService = new LogDataService(); var logData = dataService.GetLogDataFromFilePath(logFile); int logDataEntryCount = logData.Count(); Assert.That(logDataEntryCount, Is.EqualTo(24), "The log data entry count should be 24 but is actually {0}", logDataEntryCount); }
public void Time_ParseLargeLogFile() { Stopwatch sw = new Stopwatch(); sw.Start(); var logFile = Path.Combine(Configuration.TestLogsDirectory, "UmbracoTraceLog.MictPHC124-PC.txt"); LogDataService dataService = new LogDataService(); var logData = dataService.GetLogDataFromFilePath(logFile).Count(); sw.Stop(); TestContext.WriteLine("Time taken: " + sw.Elapsed); }
public void Check_Entry_Six_72x_Is_Parsed() { var entry = EntriesToMatch_72x[5]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2014-06-26 20:36:47.340"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("INFO")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Core.ApplicationContext")); Assert.That(data.Message, Does.StartWith("CurrentVersion different from configStatus: '7.1.2',''-]")); Assert.That(data.ThreadId, Is.EqualTo("11")); }
public void Check_Entry_Eight_72x_Is_Parsed() { var entry = EntriesToMatch_72x[7]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2015-07-22 20:17:16.194"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("INFO")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Core.CoreBootManager")); Assert.That(data.Message, Is.EqualTo("Umbraco 7.2.8 [banana] application starting on DONKEY2000")); Assert.That(data.ThreadId, Is.EqualTo("14")); }
public void Check_Entry_One_72x_Is_Parsed() { var entry = EntriesToMatch_72x[0]; var match = LogDataService.CheckIsLongEntryMatch(entry); var data = LogDataService.ParseLogDataItem(entry, match); Assert.That(data, Is.Not.Null); var expectedDate = DateTime.Parse("2014-06-26 20:36:23.372"); Assert.That(data.Date, Is.EqualTo(expectedDate)); Assert.That(data.Level, Is.EqualTo("INFO")); Assert.That(data.Logger, Is.EqualTo("Umbraco.Core.PluginManager")); Assert.That(data.Message, Is.EqualTo("Determining hash of code files on disk")); Assert.That(data.ThreadId, Is.EqualTo("1")); }