コード例 #1
0
        /// <summary>
        /// 添加一个接收器,允许您将日志消息推送到Kafka
        /// </summary>
        public static LoggerConfiguration Kafka(
            this LoggerSinkConfiguration loggerConfiguration,
            ProducerConfig producerConfig, string topic, int batchPostingLimit = 0,
            TimeSpan period = default, ITextFormatter formatter = null
            )
        {
            KafkaClientConfiguration clientConfiguration = new KafkaClientConfiguration
            {
                Topic          = topic,
                ProducerConfig = producerConfig
            };

            KafkaSinkConfiguration sinkConfiguration = new KafkaSinkConfiguration
            {
                BatchPostingLimit = batchPostingLimit,
                Period            = period,
            };

            if (formatter != null)
            {
                sinkConfiguration.TextFormatter = formatter;
            }

            return(RegisterSink(loggerConfiguration, clientConfiguration, sinkConfiguration));
        }
コード例 #2
0
 /// <summary>
 /// 添加一个接收器,允许您将日志消息推送到Kafka
 /// </summary>
 public static LoggerConfiguration Kafka(
     this LoggerSinkConfiguration loggerConfiguration,
     KafkaClientConfiguration clientConfiguration, KafkaSinkConfiguration sinkConfiguration, ITextFormatter textFormatter = null)
 {
     if (textFormatter != null)
     {
         sinkConfiguration.TextFormatter = textFormatter;
     }
     return(RegisterSink(loggerConfiguration, clientConfiguration, sinkConfiguration));
 }
コード例 #3
0
        /// <summary>
        /// 添加一个接收器,允许您将日志消息推送到Kafka
        /// </summary>
        public static LoggerConfiguration Kafka(
            this LoggerSinkConfiguration loggerConfiguration,
            Action <KafkaClientConfiguration, KafkaSinkConfiguration> configure)
        {
            KafkaClientConfiguration clientConfiguration = new KafkaClientConfiguration();
            KafkaSinkConfiguration   sinkConfiguration   = new KafkaSinkConfiguration();

            configure(clientConfiguration, sinkConfiguration);

            return(RegisterSink(loggerConfiguration, clientConfiguration, sinkConfiguration));
        }
コード例 #4
0
ファイル: ConsumerConfig.cs プロジェクト: scroyston/kafka
 public ConsumerConfig(KafkaClientConfiguration kafkaClientConfiguration) : this()
 {
     this.Host                 = kafkaClientConfiguration.KafkaServer.Address;
     this.Port                 = kafkaClientConfiguration.KafkaServer.Port;
     this.NumberOfTries        = kafkaClientConfiguration.Consumer.NumberOfTries;
     this.GroupId              = kafkaClientConfiguration.Consumer.GroupId;
     this.Timeout              = kafkaClientConfiguration.Consumer.Timeout;
     this.AutoOffsetReset      = kafkaClientConfiguration.Consumer.AutoOffsetReset;
     this.AutoCommit           = kafkaClientConfiguration.Consumer.AutoCommit;
     this.AutoCommitIntervalMs = kafkaClientConfiguration.Consumer.AutoCommitIntervalMs;
     this.FetchSize            = kafkaClientConfiguration.Consumer.FetchSize;
     this.BackOffIncrementMs   = kafkaClientConfiguration.Consumer.BackOffIncrementMs;
     if (kafkaClientConfiguration.IsZooKeeperEnabled)
     {
         this.ZkConnect             = kafkaClientConfiguration.ZooKeeperServers.AddressList;
         this.ZkSessionTimeoutMs    = kafkaClientConfiguration.ZooKeeperServers.SessionTimeout;
         this.ZkConnectionTimeoutMs = kafkaClientConfiguration.ZooKeeperServers.ConnectionTimeout;
     }
 }
コード例 #5
0
ファイル: ConsumerConfig.cs プロジェクト: precog/kafka
 public ConsumerConfig(KafkaClientConfiguration kafkaClientConfiguration)
     : this()
 {
     this.Host = kafkaClientConfiguration.KafkaServer.Address;
     this.Port = kafkaClientConfiguration.KafkaServer.Port;
     this.NumberOfTries = kafkaClientConfiguration.Consumer.NumberOfTries;
     this.GroupId = kafkaClientConfiguration.Consumer.GroupId;
     this.Timeout = kafkaClientConfiguration.Consumer.Timeout;
     this.AutoOffsetReset = kafkaClientConfiguration.Consumer.AutoOffsetReset;
     this.AutoCommit = kafkaClientConfiguration.Consumer.AutoCommit;
     this.AutoCommitIntervalMs = kafkaClientConfiguration.Consumer.AutoCommitIntervalMs;
     this.FetchSize = kafkaClientConfiguration.Consumer.FetchSize;
     this.BackOffIncrementMs = kafkaClientConfiguration.Consumer.BackOffIncrementMs;
     if (kafkaClientConfiguration.IsZooKeeperEnabled)
     {
         this.ZkConnect = kafkaClientConfiguration.ZooKeeperServers.AddressList;
         this.ZkSessionTimeoutMs = kafkaClientConfiguration.ZooKeeperServers.SessionTimeout;
         this.ZkConnectionTimeoutMs = kafkaClientConfiguration.ZooKeeperServers.ConnectionTimeout;
     }
 }
コード例 #6
0
        static LoggerConfiguration RegisterSink(LoggerSinkConfiguration loggerConfiguration, KafkaClientConfiguration clientConfiguration, KafkaSinkConfiguration sinkConfiguration)
        {
            if (loggerConfiguration == null)
            {
                throw new ArgumentNullException("loggerConfiguration");
            }
            if (string.IsNullOrEmpty(clientConfiguration.ProducerConfig.BootstrapServers))
            {
                throw new ArgumentException("BootstrapServers不能为空, 至少指定一个主机名", "BootstrapServers");
            }

            sinkConfiguration.BatchPostingLimit = (sinkConfiguration.BatchPostingLimit == default) ? DefaultBatchPostingLimit : sinkConfiguration.BatchPostingLimit;
            sinkConfiguration.Period            = (sinkConfiguration.Period == default) ? DefaultPeriod : sinkConfiguration.Period;
            if (string.IsNullOrEmpty(clientConfiguration.Topic))
            {
                clientConfiguration.Topic = DefaultTopic;
            }

            return
                (loggerConfiguration
                 .Sink(new KafkaSink(clientConfiguration, sinkConfiguration), sinkConfiguration.RestrictedToMinimumLevel));
        }