Exemplo n.º 1
0
        /// <summary>
        /// Adds a sink that writes log events as documents to Amazon Kinesis Firehose.
        /// </summary>
        /// <param name="loggerConfiguration">The logger configuration.</param>
        /// <param name="options"></param>
        /// <param name="kinesisFirehoseClient"></param>
        /// <returns>Logger configuration, allowing configuration to continue.</returns>
        /// <exception cref="ArgumentNullException">A required parameter is null.</exception>
        public static LoggerConfiguration AmazonKinesisFirehose(
            this LoggerSinkConfiguration loggerConfiguration,
            KinesisFirehoseSinkOptions options,
            IAmazonKinesisFirehose kinesisFirehoseClient)
        {
            if (loggerConfiguration == null)
            {
                throw new ArgumentNullException("loggerConfiguration");
            }
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }

            ILogEventSink sink;

            if (options.BufferBaseFilename == null)
            {
                sink = new KinesisFirehoseSink(options, kinesisFirehoseClient);
            }
            else
            {
                sink = new DurableKinesisFirehoseSink(options, kinesisFirehoseClient);
            }

            return(loggerConfiguration.Sink(sink, options.MinimumLogEventLevel ?? LevelAlias.Minimum));
        }
Exemplo n.º 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="kinesisFirehoseClient"></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 AmazonKinesisFirehose(
            this LoggerSinkConfiguration loggerConfiguration,
            IAmazonKinesisFirehose kinesisFirehoseClient,
            string streamName,
            string bufferBaseFilename    = null,
            int?bufferFileSizeLimitBytes = null,
            int?batchPostingLimit        = null,
            TimeSpan?period = null,
            ITextFormatter customFormatter     = null,
            LogEventLevel?minimumLogEventLevel = null,
            EventHandler <LogSendErrorEventArgs> onLogSendError = null)
        {
            if (kinesisFirehoseClient == null)
            {
                throw new ArgumentNullException("kinesisFirehoseClient");
            }
            if (streamName == null)
            {
                throw new ArgumentNullException("streamName");
            }

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

            return(AmazonKinesisFirehose(loggerConfiguration, options, kinesisFirehoseClient));
        }