예제 #1
0
        public bool Log(LogLevel logLevel, Func <string> messageFunc, Exception exception = null)
        {
            if (_logger == null)
            {
                return(false);
            }
            if (messageFunc == null && exception == null)
            {
                return(true);
            }


            if (logLevel == LogLevel.Trace && _logger.IsTraceEnabled)
            {
                _logger.Trace(messageFunc());
            }
            if (logLevel == LogLevel.Debug && _logger.IsDebugEnabled)
            {
                _logger.Debug(messageFunc());
            }
            if (logLevel == LogLevel.Info && _logger.IsInfoEnabled)
            {
                _logger.Info(messageFunc());
            }
            if (logLevel == LogLevel.Warn && _logger.IsWarnEnabled)
            {
                _logger.Warn(messageFunc());
            }
            if (logLevel == LogLevel.Error && _logger.IsErrorEnabled)
            {
                var message = messageFunc();
                if (!message.IsNullOrEmpty())
                {
                    _logger.Error(message);
                }
                _logger.Error(exception);
            }
            if (logLevel == LogLevel.Fatal && _logger.IsFatalEnabled)
            {
                _logger.Fatal(messageFunc());
            }
            return(true);
        }