public void SqlServerLogWriter_Write_UsesEventFormatter() { TruncateTable(); var mapping = new Dictionary <string, string>(); mapping.Add("DateTime", "LogDate"); mapping.Add("EventName", "Event"); mapping.Add("EventType", "EventType"); mapping.Add("Source", "Source"); mapping.Add("SeverityLevel", "Severity"); mapping.Add("Test Prop", "Data"); mapping.Add("FullDetails", "StructuredData"); var writer = new SqlServerLogWriter(ConnectionString, "AuditTrail", mapping, Formatters.XmlLogEventFormatter.DefaultInstance, true); writer.Write(new LogEvent() { EventName = "Test event", DateTime = DateTime.Now, Source = "Test Source", Properties = new Dictionary <string, object>() { { "Test Prop", "Test Value" } } }); var data = GetTableRows(); var eventDoc = System.Xml.Linq.XDocument.Parse((string)data.Tables[0].Rows[0]["StructuredData"]); Assert.IsNotNull(eventDoc); Assert.IsNotNull((from n in eventDoc.Descendants() where n.Name == "LogEvent" select n).FirstOrDefault()); }
public void SqlServerLogWriter_Write_WritesEvent() { TruncateTable(); var mapping = new Dictionary <string, string>(); mapping.Add("DateTime", "LogDate"); mapping.Add("EventName", "Event"); mapping.Add("EventType", "EventType"); mapping.Add("Source", "Source"); mapping.Add("SeverityLevel", "Severity"); mapping.Add("Test Prop", "Data"); mapping.Add("FullDetails", "StructuredData"); var writer = new SqlServerLogWriter(ConnectionString, "AuditTrail", mapping); writer.Write(new LogEvent() { EventName = "Test event", DateTime = DateTime.Now, Source = "Test Source", Properties = new Dictionary <string, object>() { { "Test Prop", "Test Value" } } }); var data = GetTableRows(); Assert.AreEqual(1, data.Tables[0].Rows.Count); var logEvent = Newtonsoft.Json.JsonConvert.DeserializeObject <LogEvent>((string)data.Tables[0].Rows[0]["StructuredData"]); Assert.AreEqual("Test event", logEvent.EventName); Assert.AreEqual("Test Source", logEvent.Source); }
public RequestResponseLoggingMiddleware(RequestDelegate next, ILoggerFactory loggerFactory, ILogRecord record, IConfiguration configuration) { _next = next; _logger = loggerFactory.CreateLogger <RequestResponseLoggingMiddleware>(); _configuration = configuration; _record = record; var connectionString = _configuration.GetConnectionString(AppConst.DefaultDb); _writer = new SqlServerLogWriter(connectionString); }
public void SqlServerLogWriter_WriteBatch_TruncatesOverSizeStrings() { TruncateTable(); var mapping = new Dictionary <string, string>(); mapping.Add("DateTime", "LogDate"); mapping.Add("EventName", "Event"); mapping.Add("EventType", "EventType"); mapping.Add("Source", "Source"); mapping.Add("SeverityLevel", "Severity"); mapping.Add("Test Prop", "Data"); mapping.Add("FullDetails", "StructuredData"); var writer = new SqlServerLogWriter(ConnectionString, "AuditTrail", mapping, Formatters.XmlLogEventFormatter.DefaultInstance, true); var source = new string('A', 512); var entryCount = 1000; var events = new LogEvent[entryCount]; for (int cnt = 0; cnt < entryCount; cnt++) { events[cnt] = new LogEvent() { EventName = "Test event " + cnt.ToString(), DateTime = DateTime.Now, Source = source, Properties = new Dictionary <string, object>() { { "Test Prop", "Test Value" } } }; } writer.WriteBatch(events, 10); string truncatedSoruce = new string('A', 255); var data = GetTableRows(); foreach (System.Data.DataRow row in data.Tables[0].Rows) { Assert.AreEqual(truncatedSoruce, (string)row["Source"]); } }
public void SqlServerLogWriter_WriteBatch_WritesPartialArrayBatch() { TruncateTable(); var mapping = new Dictionary <string, string>(); mapping.Add("DateTime", "LogDate"); mapping.Add("EventName", "Event"); mapping.Add("EventType", "EventType"); mapping.Add("Source", "Source"); mapping.Add("SeverityLevel", "Severity"); mapping.Add("Test Prop", "Data"); var writer = new SqlServerLogWriter(ConnectionString, "AuditTrail", mapping); var entryCount = 1000; var events = new LogEvent[entryCount]; for (int cnt = 0; cnt < entryCount; cnt++) { events[cnt] = new LogEvent() { EventName = "Test event " + cnt.ToString(), DateTime = DateTime.Now, Source = "Test Source", Properties = new Dictionary <string, object>() { { "Test Prop", "Test Value" } } }; } var sw = new System.Diagnostics.Stopwatch(); sw.Start(); writer.WriteBatch(events, 10); sw.Stop(); System.Diagnostics.Trace.WriteLine($"SqlServerLogWriter: Write of {10} entries took {sw.Elapsed.ToString()}"); var data = GetTableRows(); Assert.AreEqual(10, data.Tables[0].Rows.Count); }
public void SqlServerLogWriter_Constructor_ConstructsOkWithNullFormatter() { var writer = new SqlServerLogWriter(ConnectionString, "AuditTrail", null, null, true); }
public void SqlServerLogWriter_Constructor_ConstructsOkWithNullColumnMapping() { var writer = new SqlServerLogWriter(ConnectionString, "AuditTrail", null); }
public void SqlServerLogWriter_Constructor_ThrowsOnWhitespaceTableName() { var writer = new SqlServerLogWriter(ConnectionString, " "); }
public void SqlServerLogWriter_Constructor_ThrowsOnEmptyTableName() { var writer = new SqlServerLogWriter(ConnectionString, String.Empty); }
public void SqlServerLogWriter_Constructor_ThrowsOnNullTableName() { var writer = new SqlServerLogWriter(ConnectionString, null); }
public void SqlServerLogWriter_Constructor_ThrowsOnWhitespaceConnectionString() { var writer = new SqlServerLogWriter(" ", "Test"); }
public void SqlServerLogWriter_Constructor_ThrowsOnEmptyConnectionString() { var writer = new SqlServerLogWriter(String.Empty, "Test"); }
public void SqlServerLogWriter_Constructor_ThrowsOnNullConnectionString() { var writer = new SqlServerLogWriter(null, "Test"); }