예제 #1
0
        public void Log(LogLevel level, Exception exception, string message, object[] args)
        {
            var logLevel = ConvertLevel(level);

            if (message == null && exception != null)
            {
                message = exception.Message;
            }

            object messageObj = message;

            if (args != null && args.Length > 0)
            {
                messageObj = new SystemStringFormat(CultureInfo.CurrentUICulture, message, args);
            }

            var loggingEvent = new LoggingEvent(
                _declaringType,
                _logger.Repository,
                _logger.Name,
                logLevel,
                messageObj,
                exception);

            loggingEvent.Properties["LevelId"] = (int)level;
            TryAddExtendedThreadInfo(loggingEvent);

            _logger.Log(loggingEvent);
        }
        public void When_object_is_from_log4net_should_call_to_string()
        {
            var    log4NetObj = new SystemStringFormat(CultureInfo.InvariantCulture, "should see {0}", "this string");
            string message    = RenderObjectToString(log4NetObj);

            message.Should().Be("should see this string");
        }
예제 #3
0
        /// <summary>
        /// Logs a formatted message string with the specified <see cref="Level"/>.
        /// </summary>
        private static void LogMessage(Level level, string format, params object[] args)
        {
            var logger = GetLoggerInstance();

            if (logger.IsEnabledFor(level))
            {
                var message = new SystemStringFormat(CultureInfo.InvariantCulture, format, args);
                logger.Log(typeof(Log), level, message, null);
            }
        }
예제 #4
0
        /// <summary>
        /// Logs a debug message
        /// </summary>
        /// <param name="format">The format.</param>
        /// <param name="args">The args.</param>
        protected void Debug(string format, params object[] args)
        {
            var ssf = new SystemStringFormat(CultureInfo.InvariantCulture, format, args);

            if (log.IsDebugEnabled)
            {
                log.Logger.Log(GetType(), Level.Debug, ssf, null);
            }
            OnDebug(this, new MessageEventArgs(ssf.ToString()));
        }
예제 #5
0
        /// <summary>
        /// Logs a notice message
        /// </summary>
        /// <param name="format">The format.</param>
        /// <param name="args">The args.</param>
        protected void Notice(string format, params object[] args)
        {
            var ssf = new SystemStringFormat(CultureInfo.InvariantCulture, format, args);

            if (log.Logger.IsEnabledFor(Level.Notice))
            {
                log.Logger.Log(GetType(), Level.Notice, ssf, null);
            }
            OnNotice(this, new MessageEventArgs(ssf.ToString()));
        }
예제 #6
0
        public void StringFormat()
        {
            var layout = new LogMessageLayout();

            var message      = new SystemStringFormat(CultureInfo.CurrentCulture, "This is a {0}", "test");
            var loggingEvent = GetLogginEvent(message);

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(message.ToString(), result.Message);
        }
예제 #7
0
        public void StringFormat_WithRenderedMessage()
        {
            var layout = new GelfLayout();

            var message      = new SystemStringFormat(CultureInfo.CurrentCulture, "This is a {0}", "test");
            var loggingEvent = GetLogginEventRenderedMessage(message.ToString());

            var result = GetMessage(layout, loggingEvent);

            Assert.AreEqual(message.ToString(), result.FullMessage);
            Assert.AreEqual(message.ToString(), result.ShortMessage);
        }
예제 #8
0
        /// <summary>
        /// Logs an error message
        /// </summary>
        /// <param name="exception">The exception.</param>
        /// <param name="format">The format.</param>
        /// <param name="args">The args.</param>
        protected void Error(Exception exception, string format, params object[] args)
        {
            SystemStringFormat message = new SystemStringFormat(CultureInfo.InvariantCulture, format, args);
            string             errorMessage;

            if (exception != null)
            {
                errorMessage = string.Format("{0}: {1}", message, exception.Message);
            }
            else
            {
                errorMessage = message.ToString();
            }
            errors.Add(new FdoETLException(errorMessage, exception));

            OnError(this, new MessageEventArgs(message.ToString()));
        }
예제 #9
0
        /// <summary>
        /// Logs an error message
        /// </summary>
        /// <param name="exception">The exception.</param>
        /// <param name="format">The format.</param>
        /// <param name="args">The args.</param>
        protected void Error(Exception exception, string format, params object[] args)
        {
            SystemStringFormat message = new SystemStringFormat(CultureInfo.InvariantCulture, format, args);
            string             errorMessage;

            if (exception != null)
            {
                errorMessage = string.Format("{0}: {1}", message, exception.Message);
            }
            else
            {
                errorMessage = message.ToString();
            }
            errors.Add(new RhinoEtlException(errorMessage, exception));
            if (log.IsErrorEnabled)
            {
                log.Logger.Log(GetType(), Level.Error, message, exception);
            }
        }
예제 #10
0
        protected override void Append(LoggingEvent loggingEvent)
        {
            string        source       = loggingEvent.LoggerName;
            LogEventLevel serilogLevel = ConvertLevel(loggingEvent.Level);
            string        template     = null;

            object[] parameters = null;

            SystemStringFormat systemStringFormat = loggingEvent.MessageObject as SystemStringFormat;

            if (systemStringFormat != null)
            {
                template   = _FormatGetter(systemStringFormat);
                parameters = _ArgumentsGetter(systemStringFormat);
            }
            else
            {
                template = loggingEvent.MessageObject?.ToString();
            }

            var logger = (_Logger ?? global::Serilog.Log.Logger).ForContext(global::Serilog.Core.Constants.SourceContextPropertyName, source);

            logger.Write(serilogLevel, loggingEvent.ExceptionObject, template, parameters);
        }