public void Dispose()
        {
            if (_autoJumpContext)
            {
                var level = GetLevel();
                if (level.HasValue)
                {
                    if (level.Value == LoggerLevel.Warn)
                    {
                        _log.WarnFormat("End {0} : Total elapsed {1}", _endContext, _scopeSw.DisplayMicro());
                    }
                    else
                    {
                        _log.InfoFormat("End {0} : Total elapsed {1}", _endContext, _scopeSw.DisplayMicro());
                    }
                    return;
                }
            }
            switch (_endLogLevel)
            {
            case LoggerLevel.Info:
                _log.InfoFormat("End {0} : Total elapsed {1}", _endContext, _scopeSw.DisplayMicro());
                break;

            case LoggerLevel.Warn:
                _log.WarnFormat("End {0} : Total elapsed {1}", _endContext, _scopeSw.DisplayMicro());
                break;

            case LoggerLevel.Error:
                _log.ErrorFormat("End {0} : Total elapsed {1}", _endContext, _scopeSw.DisplayMicro());
                break;

            case LoggerLevel.Fatal:
                _log.FatalFormat("End {0} : Total elapsed {1}", _endContext, _scopeSw.DisplayMicro());
                break;

            default:
                _log.DebugFormat("End {0} : Total elapsed {1}", _endContext, _scopeSw.DisplayMicro());
                break;
            }
        }
 public void Debug(object message)
 {
     if (!_log.IsDebugEnabled)
     {
         return;
     }
     _unitarySw.Stop();
     if (_autoJump)
     {
         var level = GetLevelInScope();
         if (level.HasValue)
         {
             if (level.Value == LoggerLevel.Warn)
             {
                 _log.Warn(_scopeId + " - " + _unitarySw.DisplayMicro() + " - " + message);
             }
             else
             {
                 _log.Info(_scopeId + " - " + _unitarySw.DisplayMicro() + " - " + message);
             }
             _unitarySw.Reset();
             _unitarySw.Start();
             return;
         }
     }
     _log.Debug(_scopeId + " - " + _unitarySw.DisplayMicro() + " - " + message);
     _unitarySw.Reset();
     _unitarySw.Start();
 }