Пример #1
0
        /// <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);
        }
Пример #3
0
        /// <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));
        }