示例#1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="LogEntry" /> class.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        public LogEntry(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            Time      = time;
            Log       = log;
            Message   = message;
            LogEvent  = logEvent;
            ExtraData = extraData;

            _logData = logData;
        }
示例#2
0
 /// <summary>
 /// Called when a <see cref="LogEvent.Status" /> message is written to the log.
 /// </summary>
 /// <param name="log">The log.</param>
 /// <param name="message">The message.</param>
 /// <param name="extraData">The additional data.</param>
 /// <param name="logData">The log data.</param>
 /// <param name="time">The time.</param>
 protected virtual void Status(ILog log, string message, object extraData, LogData logData, DateTime time)
 {
     // Empty by default
 }
示例#3
0
 public void InfoWithData(string message, LogData logData)
 {
     LogExtensions.InfoWithData(this, message, logData);
 }
示例#4
0
 /// <summary>
 /// Returns whether the log message should be ignored
 /// </summary>
 /// <param name="log">The log.</param>
 /// <param name="message">The message.</param>
 /// <param name="logEvent">The log event.</param>
 /// <param name="extraData">The extra data.</param>
 /// <param name="logData">The log data.</param>
 /// <param name="time">The time.</param>
 /// <returns><c>true</c> if the message should be ignored, <c>false</c> otherwise.</returns>
 protected virtual bool ShouldIgnoreLogMessage(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
 {
     return(false);
 }
示例#5
0
        /// <summary>
        /// Formats the log event to a message which can be written to a log persistence storage.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        /// <returns>The formatted log event.</returns>
        protected virtual string FormatLogEvent(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            var logMessage = string.Format("{0} => [{1}] [{2}] [{3}] {4}", time.ToString(_timeFormat), LogEventStrings[logEvent], log.Name, ThreadHelper.GetCurrentThreadId(), message);

            return(logMessage);
        }
示例#6
0
        /// <summary>
        /// Formats the log event to a message which can be written to a log persistence storage.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        /// <returns>The formatted log event.</returns>
        protected override string FormatLogEvent(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            var logMessage = string.Format("[{0}] {1}", log.Name, message);

            return(logMessage);
        }
示例#7
0
 /// <summary>
 /// Writes the specified message as error message with log data.
 /// </summary>
 /// <param name="log">The log.</param>
 /// <param name="message">The message.</param>
 /// <param name="logData">The log data.</param>
 public static void ErrorWithData(this ILog log, string message, LogData logData)
 {
     log.WriteWithData(message, logData, LogEvent.Error);
 }
示例#8
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The additional data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        void ILogListener.Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            if (ShouldIgnoreLogging(log, message, logEvent, extraData, logData, time))
            {
                return;
            }

            Write(log, message, logEvent, extraData, logData, time);

            RaiseLogMessage(log, message, logEvent, extraData, logData, time);
        }
示例#9
0
        private bool ShouldIgnoreLogging(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            if (IgnoreCatelLogging && log.IsCatelLoggingAndCanBeIgnored())
            {
                return(true);
            }

            if (ShouldIgnoreLogMessage(log, message, logEvent, extraData, logData, time))
            {
                return(true);
            }

            return(false);
        }
示例#10
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected override void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            base.Write(log, message, logEvent, extraData, time);

            var logEntry = new LogEntry(log, message, logEvent, extraData, null, time);

            AddLogEvent(_lastLogEntries, logEntry, MaximumNumberOfLogEntries);

            switch (logEvent)
            {
            case LogEvent.Warning:
                AddLogEvent(_lastWarningLogEntries, logEntry, MaximumNumberOfWarningLogEntries);
                break;

            case LogEvent.Error:
                AddLogEvent(_lastErrorLogEntries, logEntry, MaximumNumberOfErrorLogEntries);
                break;
            }
        }
示例#11
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The additional data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected override void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            var logEntry = new LogBatchEntry(log, message, logEvent, extraData, logData, time);

            lock (_lock)
            {
                _logBatch.Add(logEntry);

                if (_logBatch.Count >= MaximumBatchCount)
                {
#pragma warning disable 4014
                    FlushAsync();
#pragma warning restore 4014
                }
            }
        }
示例#12
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The additional data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected override void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            string consoleMessage = FormatLogEvent(log, message, logEvent, extraData, logData, time);

#if NET || NETCORE || NETSTANDARD
            var oldConsoleBackgroundColor = Console.BackgroundColor;
            var oldConsoleForegroundColor = Console.ForegroundColor;

            UpdateConsoleColors(logEvent);
#endif

#if NETFX_CORE
            System.Diagnostics.Debug.WriteLine(consoleMessage);
#else
            Console.WriteLine(consoleMessage);
#endif

#if NET || NETCORE || NETSTANDARD
            Console.BackgroundColor = oldConsoleBackgroundColor;
            Console.ForegroundColor = oldConsoleForegroundColor;
#endif
        }
示例#13
0
 public void ErrorWithData(string message, LogData logData)
 {
     LogExtensions.ErrorWithData(this, message, logData);
 }
示例#14
0
 public void WarningWithData(string message, LogData logData)
 {
     LogExtensions.WarningWithData(this, message, logData);
 }
示例#15
0
 /// <summary>
 /// Writes the specified message as debug message with log data.
 /// </summary>
 /// <param name="log">The log.</param>
 /// <param name="message">The message.</param>
 /// <param name="logData">The log data.</param>
 public static void DebugWithData(this ILog log, string message, LogData logData)
 {
     log.WriteWithData(message, logData, LogEvent.Debug);
 }
示例#16
0
        /// <summary>
        /// Formats the log event to a message which can be written to a log persistence storage.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        /// <returns>The formatted log event.</returns>
        protected override string FormatLogEvent(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            var messageResult = _jsonLogFormatter.FormatLogEvent(log, message, logEvent, time);

            return(messageResult);
        }
示例#17
0
 /// <summary>
 /// Writes the specified message as info message with log data.
 /// </summary>
 /// <param name="log">The log.</param>
 /// <param name="message">The message.</param>
 /// <param name="logData">The log data.</param>
 public static void InfoWithData(this ILog log, string message, LogData logData)
 {
     log.WriteWithData(message, logData, LogEvent.Info);
 }
示例#18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LogMessageEventArgs" /> class.
 /// </summary>
 /// <param name="log">The log.</param>
 /// <param name="message">The message.</param>
 /// <param name="extraData">The extra data.</param>
 /// <param name="logData">The log data.</param>
 /// <param name="logEvent">The log event.</param>
 public LogMessageEventArgs(ILog log, string message, object extraData, LogData logData, LogEvent logEvent)
     : this(log, message, extraData, logData, logEvent, DateTime.Now)
 {
 }
示例#19
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected override void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            var consoleMessage = FormatLogEvent(log, message, logEvent, extraData, logData, time);

            System.Diagnostics.Debug.WriteLine(consoleMessage);
        }
示例#20
0
 /// <summary>
 /// Initializes a new instance of the <see cref="LogBatchEntry" /> class.
 /// </summary>
 /// <param name="log">The log.</param>
 /// <param name="message">The message.</param>
 /// <param name="logEvent">The log event.</param>
 /// <param name="extraData">The extra data.</param>
 /// <param name="logData">The log data.</param>
 /// <param name="time">The time.</param>
 public LogBatchEntry(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
     : base(log, message, logEvent, extraData, logData, time)
 {
 }
示例#21
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The additional data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        void ILogListener.Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            // If the log is a catel log and the AlwaysLog flag is set, skip additional checks and log the message.
            var catelLog = log as ICatelLog;

            if (catelLog == null || !catelLog.AlwaysLog)
            {
                if (IgnoreCatelLogging && log.IsCatelLogging)
                {
                    return;
                }

                if (ShouldIgnoreLogMessage(log, message, logEvent, extraData, logData, time))
                {
                    return;
                }
            }

            Write(log, message, logEvent, extraData, logData, time);

            RaiseLogMessage(log, message, logEvent, extraData, logData, time);
        }
示例#22
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The additional data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected override void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, System.DateTime time)
        {
            base.Write(log, message, logEvent, extraData, time);

            switch (logEvent)
            {
            case LogEvent.Debug:
                _eventSource.Debug(message);
                break;

            case LogEvent.Info:
                _eventSource.Info(message);
                break;

            case LogEvent.Warning:
                _eventSource.Warning(message);
                break;

            case LogEvent.Error:
                _eventSource.Error(message);
                break;
            }
        }
示例#23
0
        /// <summary>
        /// Raises the <see cref="LogMessage" /> event.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected void RaiseLogMessage(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            var handler = LogMessage;

            if (handler != null)
            {
                handler(this, new LogMessageEventArgs(log, message, extraData, logData, logEvent, time));
            }
        }
示例#24
0
        /// <summary>
        /// Writes the specified log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The extra data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected override void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            var consoleMessage = FormatLogEvent(log, message, logEvent, extraData, logData, time);

            switch (logEvent)
            {
            case LogEvent.Debug:
                System.Diagnostics.Trace.WriteLine(consoleMessage);
                break;

            case LogEvent.Info:
                System.Diagnostics.Trace.TraceInformation(consoleMessage);
                break;

            case LogEvent.Warning:
                System.Diagnostics.Trace.TraceWarning(consoleMessage);
                break;

            case LogEvent.Error:
                System.Diagnostics.Trace.TraceError(consoleMessage);
                break;
            }
        }
示例#25
0
 /// <summary>
 /// Called when any message is written to the log.
 /// </summary>
 /// <param name="log">The log.</param>
 /// <param name="message">The message.</param>
 /// <param name="logEvent">The log event.</param>
 /// <param name="extraData">The additional data.</param>
 /// <param name="logData">The log data.</param>
 /// <param name="time">The time.</param>
 protected virtual void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
 {
     // Empty by default
 }
示例#26
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The additional data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected override void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, System.DateTime time)
        {
            base.Write(log, message, logEvent, extraData, time);

            switch (logEvent)
            {
            case LogEvent.Debug:
                _eventSource.Debug(message);
                break;

            case LogEvent.Info:
                _eventSource.Info(message);
                break;

            case LogEvent.Warning:
                _eventSource.Warning(message);
                break;

            case LogEvent.Error:
                _eventSource.Error(message);
                break;

            default:
                throw new ArgumentOutOfRangeException("logEvent");
            }
        }
示例#27
0
        /// <summary>
        /// Called when any message is written to the log.
        /// </summary>
        /// <param name="log">The log.</param>
        /// <param name="message">The message.</param>
        /// <param name="logEvent">The log event.</param>
        /// <param name="extraData">The additional data.</param>
        /// <param name="logData">The log data.</param>
        /// <param name="time">The time.</param>
        protected override void Write(ILog log, string message, LogEvent logEvent, object extraData, LogData logData, DateTime time)
        {
            lock (_lock)
            {
                _logBatch.Add(new LogBatchEntry(log, message, logEvent, extraData, logData, time));

                if (_logBatch.Count >= MaximumBatchCount)
                {
                    // TODO: remove pragma in 5.0.0
#pragma warning disable 4014
                    Flush();
#pragma warning restore 4014
                }
            }
        }
示例#28
0
 public void DebugWithData(string message, LogData logData)
 {
     LogExtensions.DebugWithData(this, message, logData);
 }