Beispiel #1
0
        /// <summary>
        /// Adds a sink that writes log events as documents to Amazon Kinesis.
        /// </summary>
        /// <param name="loggerConfiguration">The logger configuration.</param>
        /// <param name="kinesisClient"></param>
        /// <param name="streamName"></param>
        /// <param name="bufferBaseFilename"></param>
        /// <param name="bufferFileSizeLimitBytes"></param>
        /// <param name="batchPostingLimit"></param>
        /// <param name="period"></param>
        /// <param name="minimumLogEventLevel"></param>
        /// <param name="onLogSendError"></param>
        /// <returns>Logger configuration, allowing configuration to continue.</returns>
        /// <exception cref="ArgumentNullException"></exception>
        public static LoggerConfiguration AmazonKinesis(
            this LoggerSinkConfiguration loggerConfiguration,
            IAmazonKinesis kinesisClient,
            string streamName,
            string bufferBaseFilename    = null,
            int?bufferFileSizeLimitBytes = null,
            int?batchPostingLimit        = null,
            TimeSpan?period = null,
            LogEventLevel?minimumLogEventLevel = null,
            EventHandler <LogSendErrorEventArgs> onLogSendError = null)
        {
            if (streamName == null)
            {
                throw new ArgumentNullException("streamName");
            }

            var options = new KinesisStreamSinkOptions(streamName: streamName)
            {
                BufferFileSizeLimitBytes = bufferFileSizeLimitBytes,
                BufferBaseFilename       = bufferBaseFilename == null ? null : bufferBaseFilename + ".stream",
                Period               = period ?? KinesisSinkOptionsBase.DefaultPeriod,
                BatchPostingLimit    = batchPostingLimit ?? KinesisSinkOptionsBase.DefaultBatchPostingLimit,
                MinimumLogEventLevel = minimumLogEventLevel ?? LevelAlias.Minimum,
                OnLogSendError       = onLogSendError
            };

            return(AmazonKinesis(loggerConfiguration, options, kinesisClient));
        }
Beispiel #2
0
        /// <summary>
        /// Adds a sink that writes log events as documents to Amazon Kinesis.
        /// </summary>
        /// <param name="loggerConfiguration">The logger configuration.</param>
        /// <param name="options"></param>
        /// <param name="kinesisClient"></param>
        /// <returns>Logger configuration, allowing configuration to continue.</returns>
        /// <exception cref="ArgumentNullException">A required parameter is null.</exception>
        public static LoggerConfiguration AmazonKinesis(
            this LoggerSinkConfiguration loggerConfiguration,
            KinesisStreamSinkOptions options, IAmazonKinesis kinesisClient)
        {
            if (loggerConfiguration == null)
            {
                throw new ArgumentNullException("loggerConfiguration");
            }
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }
            if (kinesisClient == null)
            {
                throw new ArgumentNullException("kinesisClient");
            }

            ILogEventSink sink;

            if (options.BufferBaseFilename == null)
            {
                sink = new KinesisSink(options, kinesisClient);
            }
            else
            {
                sink = new DurableKinesisSink(options, kinesisClient);
            }

            return(loggerConfiguration.Sink(sink, options.MinimumLogEventLevel ?? LevelAlias.Minimum));
        }