public static GetLogsRequestDtoData GetLogsRequestDtoData(Guid componentId, GetLogsFilter data) { if (data == null) { return(null); } return(new GetLogsRequestDtoData() { ComponentId = componentId, From = data.From, To = data.To, Context = data.Context, MaxCount = data.MaxCount, Levels = data.Levels }); }
public void ContextTest() { // запись без тега var account = TestHelper.GetTestAccount(); var component = account.CreateRandomComponentControl(); var filter = new GetLogsFilter(); component.Log.Debug("no tag message"); component.Log.Flush(); var rows = component.GetLogs(filter).Data; Assert.Equal(1, rows.Count); filter.Context = "myTag"; rows = component.GetLogs(filter).Data; Assert.Equal(0, rows.Count); //запись с тегом component.Log.Context = "myTag"; component.Log.Debug("has tag message"); component.Log.Flush(); rows = component.GetLogs(filter).Data; Assert.Equal(1, rows.Count); }
public void SendLogTest() { var account = TestHelper.GetTestAccount(); var client = account.GetClient(); var root = client.GetRootComponentControl(); var levels = new[] { LogLevel.Debug, LogLevel.Trace, LogLevel.Info, LogLevel.Warning, LogLevel.Error, LogLevel.Fatal }; var date = RandomHelper.GetRandomDate( new DateTime(1980, 1, 1), new DateTime(2014, 1, 1)); date = TestHelper.GetRoundDateTime(date); // отправляем сообщения каждого уровня var logDate = date; var messages = new List <SendLogData>(); foreach (var level in levels) { var message = new SendLogData() { ComponentId = root.Info.Id, Date = logDate, Message = "test message " + level, Level = level, Context = Guid.NewGuid().ToString() }; messages.Add(message); TestHelper.InitRandomProperties(message.Properties); var response = client.ApiService.SendLog(message); Assert.True(response.Success); logDate = logDate.AddSeconds(1); } // проверим, что все сообщения записались var findMessage = new GetLogsFilter() { From = date, To = date.AddSeconds(levels.Length), Levels = levels.ToList(), MaxCount = levels.Length }; var findLogsResponse = root.GetLogs(findMessage); Assert.True(findLogsResponse.Success); Assert.Equal(levels.Length, findLogsResponse.Data.Count); logDate = date; foreach (var level in levels) { var logRow = findLogsResponse.Data.FirstOrDefault(x => x.Level == level); var message = messages.First(x => x.Level == level); Assert.NotNull(logRow); Assert.Equal("test message " + level, logRow.Message); Assert.Equal(logDate, logRow.Date); Assert.Equal(message.Context, logRow.Context); Assert.True(logRow.Properties.Count > 0); TestHelper.CheckExtentionProperties(logRow.Properties, message.Properties); logDate = logDate.AddSeconds(1); } }
public void SendMessageTest() { var account = TestHelper.GetTestAccount(); var component = account.CreateRandomComponentControl(); Assert.False(component.IsFake()); var date = TestHelper.GetServerDateTime(); component.Log.Debug("Debug 1"); component.Log.Debug("Debug 2", new { text = "text 2", date }); component.Log.Debug("Debug 3", new Dictionary <string, object>() { { "text", "text 3" }, { "int32", 70000 }, }); component.Log.Trace("Trace 1"); component.Log.Trace("Trace 2", new { text = "text 2", date }); component.Log.Trace("Trace 3", new Dictionary <string, object>() { { "text", "text 3" }, { "int32", 70000 }, }); component.Log.Info("Info 1"); component.Log.Info("Info 2", new { text = "text 2", date }); component.Log.Info("Info 3", new Dictionary <string, object>() { { "text", "text 3" }, { "int32", 70000 }, }); component.Log.Warning("Warning 1"); component.Log.Warning("Warning 2", new { text = "text 2", date }); component.Log.Warning("Warning 3", new Dictionary <string, object>() { { "text", "text 3" }, { "int32", 70000 }, }); component.Log.Error("Error 1"); component.Log.Error("Error 2", new { text = "text 2", date }); component.Log.Error("Error 3", new Dictionary <string, object>() { { "text", "text 3" }, { "int32", 70000 }, }); component.Log.Fatal("Fatal 1"); component.Log.Fatal("Fatal 2", new { text = "text 2", date }); component.Log.Fatal("Fatal 3", new Dictionary <string, object>() { { "text", "text 3" }, { "int32", 70000 }, }); component.Log.Flush(); var endDate = TestHelper.GetServerDateTime().AddSeconds(1); // проверим, что все отправленное записалось в БД var findMessage = new GetLogsFilter() { From = date, To = endDate, Levels = null, MaxCount = 100 }; var findLogsResponse = component.GetLogs(findMessage); Assert.True(findLogsResponse.Success); var rows = findLogsResponse.Data; var levels = new[] { "Debug", "Trace", "Info", "Warning", "Error", "Fatal" }; Assert.Equal(levels.Length * 3, rows.Count); foreach (var level in levels) { var message = rows.First(x => x.Message == level + " " + 1); Assert.Equal(0, message.Properties.Count); message = rows.First(x => x.Message == level + " " + 2); Assert.Equal(2, message.Properties.Count); string text = message.Properties["text"]; Assert.Equal("text 2", text); DateTime testDate = message.Properties["date"]; Assert.Equal(date, testDate); message = rows.First(x => x.Message == level + " " + 3); Assert.Equal(2, message.Properties.Count); text = message.Properties["text"]; Assert.Equal("text 3", text); int int32 = message.Properties["int32"]; Assert.Equal(70000, int32); } }