/// <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)); }
/// <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)); }
/// <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)); }
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)); }