示例#1
0
        void ILogger.Log <TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter)
        {
            var entry = new LogEntry()
            {
                Date      = DateTime.Now,
                LogLevel  = logLevel,
                EventId   = eventId,
                State     = state,
                Exception = exception,
                Scope     = LogScopesProvider.GetState(),
                Message   = formatter(state, exception)
            };

            //iterate each logger in order and log if conditions are met
            foreach (var logger in Options.LogTargets)
            {
                if (logger.Condition == null || logger.Condition(entry))
                {
                    logger.Log(entry);
                    entry.HasBeenLogged = true;
                }
            }
        }
示例#2
0
 public void Dispose()
 {
     //remove the last scope
     LogScopesProvider.RemoveScope();
 }
示例#3
0
 IDisposable ILogger.BeginScope <TState>(TState state)
 {
     return
         (LogScopesProvider
          .CreateScope(state));
 }