public bool IsEnabled(LogLevel logLevel) { if (ChainedLogger != null) { return(ChainedLogger.IsEnabled(logLevel)); } return(true); }
public IDisposable BeginScope <TState>(TState state) { if (ChainedLogger != null) { return(ChainedLogger.BeginScope <TState>(state)); } else { return new AggregatedStringLoggerScope <TState>() { State = state } }; }
public void Log <TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func <TState, Exception, string> formatter) { LogString += $"[{(DateTime.Now - AttemptStarted).TotalSeconds.ToString("00000.000")}]" + $"[{logLevel}] " + formatter(state, exception) + Environment.NewLine; if (exception != null) { var exceptionString = exception.ToString() + Environment.NewLine; exceptionString = Regex.Replace(exceptionString, "Bearer [A-Za-z0-9\\-\\._~\\+\\/]+=*", "<<REDACTED BEARER TOKEN>>"); LogString += exceptionString; } if (ChainedLogger != null) { ChainedLogger.Log <TState>(logLevel, eventId, state, exception, formatter); } AttemptFinished = DateTimeOffset.UtcNow; }
public void should_call_each_logger_in_chain() { var logger = Mock.Create <ILogger>(); Mock .Arrange(() => logger.Info(Arg.IsAny <string>())) .OccursOnce(); var logger2 = Mock.Create <ILogger>(); Mock .Arrange(() => logger2.Info(Arg.IsAny <string>())) .OccursOnce(); var chain = new ChainedLogger(new ILogger[] { logger, logger2 }); chain.Info("My log message"); Mock.AssertAll(logger); Mock.AssertAll(logger2); }