public void SingleScenarioWorks() { // --- Arrange var tracer = new FileTraceLogger(LOG_FILE, LOG_ROOT, flushAfter: 3); var traceItem = new TraceLogItem { TimestampUtc = new DateTime(2012, 1, 1, 8, 0, 0), Type = TraceLogItemType.Informational, ServerName = "Server", ThreadId = 123, OperationType = "TestOp", Message = "Message" }; // --- Act for (var i = 0; i < 5; i++) { tracer.Log(traceItem); } tracer.Dispose(); // --- Assert var text = File.ReadAllText(Path.Combine(LOG_ROOT, LOG_FILE)); var lines = text.Split(new [] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (var line in lines) { line.ShouldContain("Informational\tServer\t123\tTestOp\tMessage\t"); } lines.ShouldHaveCountOf(5); }
public void LogWithRedirectionWorksWithExceptionMessage() { // --- Arrange if (!Directory.Exists(LOG_ROOT)) { Directory.CreateDirectory(LOG_ROOT); } File.Delete(Path.Combine(LOG_ROOT, LOG_FILE)); var tracer = new FileTraceLogger(LOG_FILE, LOG_ROOT, flushAfter: 1); var eventLog = new EventLog(SEEMPLEST_LOG2); // --- Act WindowsEventLogger.RedirectLogTo(tracer); WindowsEventLogger.Log <SampleError>(new NullReferenceException()); // --- Assert EventLog.Exists(SEEMPLEST_LOG2).ShouldBeFalse(); eventLog.Dispose(); var text = File.ReadAllText(Path.Combine(LOG_ROOT, LOG_FILE)); var lines = text.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); lines.ShouldHaveCountOf(3); var parts = lines[0].Split(new[] { "\t" }, StringSplitOptions.RemoveEmptyEntries); parts[1].ShouldEqual("Error"); }
public void LogRedirectionConvertsTypesAsExpected() { // --- Arrange if (!Directory.Exists(LOG_ROOT)) { Directory.CreateDirectory(LOG_ROOT); } File.Delete(Path.Combine(LOG_ROOT, LOG_FILE)); var tracer = new FileTraceLogger(LOG_FILE, LOG_ROOT, flushAfter: 1); var eventLog = new EventLog(SEEMPLEST_LOG2); // --- Act WindowsEventLogger.RedirectLogTo(tracer); WindowsEventLogger.Log <SampleError>(); WindowsEventLogger.Log <SampleWarning>(); WindowsEventLogger.Log <SampleInformation>(); WindowsEventLogger.Log <SampleFailureAudit>(); WindowsEventLogger.Log <SampleSuccessAudit>(); // --- Assert EventLog.Exists(SEEMPLEST_LOG2).ShouldBeFalse(); eventLog.Dispose(); var text = File.ReadAllText(Path.Combine(LOG_ROOT, LOG_FILE)); var lines = text.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); lines.ShouldHaveCountOf(5); var expectedCats = new[] { "Error", "Warning", "Informational", "Error", "Success" }; for (var i = 0; i < 5; i++) { var parts = lines[i].Split(new[] { "\t" }, StringSplitOptions.RemoveEmptyEntries); parts[1].ShouldEqual(expectedCats[i]); } }
public void LogAfterResetWorksAsExpected() { // --- Arrange if (!Directory.Exists(LOG_ROOT)) { Directory.CreateDirectory(LOG_ROOT); } File.Delete(Path.Combine(LOG_ROOT, LOG_FILE)); var tracer = new FileTraceLogger(LOG_FILE, LOG_ROOT, flushAfter: 1); var eventLog = new EventLog(SEEMPLEST_LOG2); WindowsEventLogger.RedirectLogTo(tracer); WindowsEventLogger.Log <WithStringNameAttribute>(); // --- Act WindowsEventLogger.Reset(); WindowsEventLogger.Log <WithStringNameAttribute>(); // --- Assert var after = eventLog.Entries; var afterCount = after.Count; afterCount.ShouldEqual(1); var lastentry = after[after.Count - 1]; lastentry.Category.ShouldEqual("(5)"); lastentry.InstanceId.ShouldEqual(3); lastentry.Message.ShouldEqual("Default message"); lastentry.Source.ShouldEqual(SEEMPLEST_SOURCE); lastentry.EntryType.ShouldEqual(EventLogEntryType.Information); eventLog.Dispose(); }
public void LogWithRedirectionWorksAsExpected() { // --- Arrange if (!Directory.Exists(LOG_ROOT)) { Directory.CreateDirectory(LOG_ROOT); } File.Delete(Path.Combine(LOG_ROOT, LOG_FILE)); var tracer = new FileTraceLogger(LOG_FILE, LOG_ROOT, flushAfter: 1); var eventLog = new EventLog(SEEMPLEST_LOG2); // --- Act WindowsEventLogger.RedirectLogTo(tracer); WindowsEventLogger.Log <WithStringNameAttribute>(); // --- Assert EventLog.Exists(SEEMPLEST_LOG2).ShouldBeFalse(); eventLog.Dispose(); var text = File.ReadAllText(Path.Combine(LOG_ROOT, LOG_FILE)); var lines = text.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); lines.ShouldHaveCountOf(1); var parts = lines[0].Split(new[] { "\t" }, StringSplitOptions.RemoveEmptyEntries); parts[1].ShouldEqual("Informational"); parts[4].ShouldEqual("Windows Event Trace"); parts[5].ShouldEqual("Default message"); parts[6].ShouldEqual("EventId: 3, CategoryId: 5"); }
public static void Stop() { if (LoggerInstance != null) { LoggerInstance.Dispose(); } LoggerInstance = null; }
/// <summary> /// Inicializálja a naplózó komponenst /// </summary> public static void Start() { var logFolder = TracerConfiguration.LogFolder; var logFile = TracerConfiguration.LogFile; var folderPattern = TracerConfiguration.FolderPattern; var fileSuffixPattern = TracerConfiguration.FileSuffixPattern; LoggerInstance = new FileTraceLogger( logFile, logFolder, folderPattern, fileNameSuffixPattern: fileSuffixPattern, flushAfter: 1); s_LogType = TracerConfiguration.LogLevel; }
public void ComplexScenarioWorks() { // --- Arrange if (File.Exists(Path.Combine(LOG_ROOT, "08", LOG_FILE))) { File.Delete(Path.Combine(LOG_ROOT, "08", LOG_FILE)); } if (File.Exists(Path.Combine(LOG_ROOT, "09", LOG_FILE))) { File.Delete(Path.Combine(LOG_ROOT, "09", LOG_FILE)); } var tracer = new FileTraceLogger(LOG_FILE, LOG_ROOT, "hh", flushAfter: 3); var traceItem1 = new TraceLogItem { // 8 o'clock TimestampUtc = new DateTime(2012, 1, 1, 8, 0, 0), Type = TraceLogItemType.Informational, ServerName = "Server", ThreadId = 123, OperationType = "TestOp", Message = "Message" }; var traceItem2 = new TraceLogItem { // 9 o'clock TimestampUtc = new DateTime(2012, 1, 1, 9, 0, 0), Type = TraceLogItemType.Informational, ServerName = "Server", ThreadId = 123, OperationType = "TestOp", Message = "Message" }; // --- Act for (var i = 0; i < 3; i++) { tracer.Log(traceItem1); tracer.Log(traceItem2); tracer.Log(traceItem1); tracer.Log(traceItem1); } tracer.Dispose(); // --- Assert var text1 = File.ReadAllText(Path.Combine(LOG_ROOT, "08", LOG_FILE)); var lines1 = text1.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); lines1.ShouldHaveCountOf(9); foreach (var line in lines1) { line.ShouldContain("\tInformational\tServer\t123\tTestOp\tMessage\t"); } var text2 = File.ReadAllText(Path.Combine(LOG_ROOT, "09", LOG_FILE)); var lines2 = text2.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); lines2.ShouldHaveCountOf(3); foreach (var line in lines2) { line.ShouldContain("\tInformational\tServer\t123\tTestOp\tMessage\t"); } }