Esempio n. 1
0
        /// <summary>
        /// Two-phase termination이 가능하도록 내부에서 항상 shutdown요청을 감시하면서 단위작업을 수행한다.
        /// <see cref="ThreadInterruptedException"/>이 발생해도 내부적으로 무시하고 진행한다.
        /// </summary>
        public override void Run()
        {
            if (IsDebugEnabled)
            {
                log.Debug("Run the worker thread.");
            }

            OnStarted();

            try {
                // 중지가 요청될 때까지 단위 작업을 호출합니다.
                while (IsShutdownRequested == false)
                {
                    DoWork();
                    Thread.Sleep(WorkInterval);
                }
            }
            catch (ThreadInterruptedException tie) {
                if (log.IsInfoEnabled)
                {
                    log.InfoException("Worker thread is interrupted. It's just information.", tie);
                }
            }
            finally {
                DoShutDown();
            }

            OnFinished();

            if (IsDebugEnabled)
            {
                log.Debug("Current worker thread is finished.");
            }
        }
 public void Info(string message, Exception ex)
 {
     wrappedLogger.InfoException(message, ex);
 }
 public void InfoException(string message, Exception exception)
 {
     _nlogger.InfoException(message, exception);
 }
Esempio n. 4
0
 /// <summary>
 /// Logs an Info message and exception.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="exception">The exception.</param>
 public void Info(object message, Exception exception)
 {
     log.InfoException(message.ToString(), exception);
 }
Esempio n. 5
0
        /// <summary>
        /// Logs the given message.
        /// Output depends on the associated NLog configuration.
        /// </summary>
        /// <param name="item">A <see cref="LogItem"/> which encapsulates information to be logged.</param>
        /// <exception cref="ArgumentNullException">If <paramref name="item"/> is a null reference.</exception>
        public override void Write(LogItem item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            string message = FormatItem(item);

            if (item.Exception != null)
            {
                switch (item.LogLevel)
                {
                case LogLevel.Fatal:
                    log.FatalException(message, item.Exception);
                    break;

                case LogLevel.Error:
                    log.ErrorException(message, item.Exception);
                    break;

                case LogLevel.Warn:
                    log.WarnException(message, item.Exception);
                    break;

                case LogLevel.Info:
                    log.InfoException(message, item.Exception);
                    break;

                case LogLevel.Debug:
                    log.DebugException(message, item.Exception);
                    break;

                default:
                    log.InfoException(message, item.Exception);
                    break;
                }
            }
            else
            {
                switch (item.LogLevel)
                {
                case LogLevel.Fatal:
                    log.Fatal(message);
                    break;

                case LogLevel.Error:
                    log.Error(message);
                    break;

                case LogLevel.Warn:
                    log.Warn(message);
                    break;

                case LogLevel.Info:
                    log.Info(message);
                    break;

                case LogLevel.Debug:
                    log.Debug(message);
                    break;

                default:
                    log.Info(message);
                    break;
                }
            }
        }
Esempio n. 6
0
        void Log(LogItem item)
        {
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            if (item.LogException != null)
            {
                switch (item.Level)
                {
                case LogLevel.Fatal:
                    _logger.FatalException(item.Text, item.LogException);
                    break;

                case LogLevel.Error:
                    _logger.ErrorException(item.Text, item.LogException);
                    break;

                case LogLevel.Warn:
                    _logger.WarnException(item.Text, item.LogException);
                    break;

                case LogLevel.Info:
                    _logger.InfoException(item.Text, item.LogException);
                    break;

                case LogLevel.Debug:
                    _logger.DebugException(item.Text, item.LogException);
                    break;

                default:
                    _logger.InfoException(item.Text, item.LogException);
                    break;
                }
            }
            else
            {
                switch (item.Level)
                {
                case LogLevel.Fatal:
                    _logger.Fatal(item.Text);
                    break;

                case LogLevel.Error:
                    _logger.Error(item.Text);
                    break;

                case LogLevel.Warn:
                    _logger.Warn(item.Text);
                    break;

                case LogLevel.Info:
                    _logger.Info(item.Text);
                    break;

                case LogLevel.Debug:
                    _logger.Debug(item.Text);
                    break;

                default:
                    _logger.Info(item.Text);
                    break;
                }
            }
        }