/// <inheritdoc /> public void Log(LogEvent @event) { if (@event == null) { return; } if (!IsEnabledFor(@event.Level)) { return; } while (true) { var settings = settingsProvider.Get(); var file = filePathProvider.Get(settings); var registration = ObtainMuxerRegistration(file, settings); if (!muxer.TryAdd(file, new LogEventInfo(@event, settings), muxerHandleRef)) { eventsLost.Increment(); break; } if (registration.IsValid(file)) { break; } } }
public void Should_not_cache_settings_when_there_are_no_errors() { var settings = new FileLogSettings(); var settings2 = new FileLogSettings(); var provider = new SafeSettingsProvider(() => settings); provider.Get().Should().BeSameAs(settings); settings = settings2; provider.Get().Should().BeSameAs(settings2); }
/// <inheritdoc /> public void Log(LogEvent @event) { if (@event == null) { return; } var settings = settingsProvider.Get(); if (!IsEnabledFor(settings, @event.Level)) { return; } settings.HerculesSink.Put( settings.Stream, builder => builder.AddLogEventData(@event, settings.BlacklistedProperties, settings.FormatProvider)); }