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);
        }
示例#2
0
        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");
        }
示例#3
0
        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]);
            }
        }
示例#4
0
        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();
        }
示例#5
0
        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");
        }
示例#6
0
 public static void Stop()
 {
     if (LoggerInstance != null)
     {
         LoggerInstance.Dispose();
     }
     LoggerInstance = null;
 }
示例#7
0
        /// <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");
            }
        }