示例#1
0
        private static void Main()
        {
            var log    = new LogSource();
            var logger = LogSettings.RegisterDefaultLogger <ColorConsoleLogger>();

            logger.LogLevel = LogLevels.Verbose;
            log.Verbose().WriteLine("This is {0}", LogLevels.Verbose);
            log.Debug().WriteLine("This is {0}", LogLevels.Debug);
            log.Info().WriteLine("This is {0}", LogLevels.Info);
            log.Warn().WriteLine("This is {0}", LogLevels.Warn);
            log.Error().WriteLine("This is {0}", LogLevels.Error);
            log.Fatal().WriteLine("This is {0}", LogLevels.Fatal);
            Console.ReadLine();
        }
示例#2
0
        /// <summary>
        ///     This will assert that the write lines work
        /// </summary>
        private static void AssertWriteLines(LogSource logSource)
        {
            // Now call all write lines
            const string message = "Test log line";
            const string messageWithArguments = "Test log line with argument {0}";
            var          exception            = new Exception("Test");

            logSource.Verbose().WriteLine(message);
            logSource.Verbose().WriteLine(messageWithArguments, "One");
            logSource.Verbose().WriteLine(exception, message);
            logSource.Verbose().WriteLine(exception, messageWithArguments, "One");

            logSource.Debug().WriteLine(message);
            logSource.Debug().WriteLine(messageWithArguments, "One");
            logSource.Debug().WriteLine(exception, message);
            logSource.Debug().WriteLine(exception, messageWithArguments, "One");

            logSource.Info().WriteLine(message);
            logSource.Info().WriteLine(messageWithArguments, "One");
            logSource.Info().WriteLine(exception, message);
            logSource.Info().WriteLine(exception, messageWithArguments, "One");

            logSource.Warn().WriteLine(message);
            logSource.Warn().WriteLine(messageWithArguments, "One");
            logSource.Warn().WriteLine(exception, message);
            logSource.Warn().WriteLine(exception, messageWithArguments, "One");

            logSource.Error().WriteLine(message);
            logSource.Error().WriteLine(messageWithArguments, "One");
            logSource.Error().WriteLine(exception, message);
            logSource.Error().WriteLine(exception, messageWithArguments, "One");

            logSource.Fatal().WriteLine(message);
            logSource.Fatal().WriteLine(messageWithArguments, "One");
            logSource.Fatal().WriteLine(exception, message);
            logSource.Fatal().WriteLine(exception, messageWithArguments, "One");
        }
示例#3
0
        public void TestLoggerVisibility()
        {
            var stringWriterLogger = LogSettings.RegisterDefaultLogger <StringWriterLogger>();

            Assert.NotNull(stringWriterLogger);
            Log.Verbose().WriteLine("This is a test, should NOT be visible");
            Log.Debug().WriteLine("This is a test, should NOT be visible");
            Log.Info().WriteLine("This is a test");
            Log.Warn().WriteLine("This is a test");
            Log.Error().WriteLine("This is a test");
            Log.Fatal().WriteLine("This is a test");

            Log.Error().WriteLine(new Exception(nameof(stringWriterLogger)), "This is a test exception");

            Assert.DoesNotContain("should NOT be visible", stringWriterLogger.Output);

            var lines = stringWriterLogger.Output.Count(x => x.ToString() == Environment.NewLine);

            // Info + Warn + Error + Fatal = 4
            Assert.False(lines == 4);
        }
        /// <summary>
        /// Append the information to the Dapplo log
        /// </summary>
        /// <param name="loggingEvent">LoggingEvent</param>
        protected override void Append(LoggingEvent loggingEvent)
        {
            if (loggingEvent.Level < _minimalLog4NetLevel)
            {
                // Ignore log
                return;
            }
            var locationInformation = loggingEvent.LocationInformation;
            var log = new LogSource(locationInformation.FullInfo);

            // Map the Log4NET level, including the method and line number, to Dapplo.Log.LogInfo
            var number  = int.Parse(locationInformation.LineNumber);
            var logInfo = log.Info(number, locationInformation.MethodName);

            if (LevelIn(loggingEvent.Level, Level.Error))
            {
                logInfo = log.Error(number, locationInformation.MethodName);
            }
            if (LevelIn(loggingEvent.Level, Level.Fatal, Level.Critical, Level.Alert, Level.Emergency))
            {
                logInfo = log.Fatal(number, locationInformation.MethodName);
            }
            if (LevelIn(loggingEvent.Level, Level.Warn, Level.Severe))
            {
                logInfo = log.Warn(number, locationInformation.MethodName);
            }
            if (LevelIn(loggingEvent.Level, Level.Debug))
            {
                logInfo = log.Debug(number, locationInformation.MethodName);
            }
            if (LevelIn(loggingEvent.Level, Level.Verbose, Level.Fine, Level.Finer, Level.Finest, Level.Trace))
            {
                logInfo = log.Verbose(number, locationInformation.MethodName);
            }
            // Log the actual message, use Log4Net for the rendering
            logInfo.WriteLine(loggingEvent.RenderedMessage);
        }