internal CustomizationLogger(string name, Func <string, LogLevel, bool> filter
                                     , IExternalScopeProvider scopeProvider, string prix, string logStoreTopic
                                     , IKafkaService kafkaService)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            _kafkaService = kafkaService;

            Name           = name;
            Filter         = filter ?? ((category, logLevel) => true);
            ScopeProvider  = scopeProvider;
            _prix          = prix;
            _logStoreTopic = logStoreTopic;

            Task.Run(() => {
                try
                {
                    System.Diagnostics.Debug.WriteLine("kafka开始同步日志。");
                    foreach (var entityMess in blockColl.GetConsumingEnumerable())
                    {
                        var task = _kafkaService.Producer(_logStoreTopic
                                                          , entityMess.Id, entityMess);
                        if (task == null)
                        {
                            throw new NullReferenceException("方法没有返回有效的task");
                        }

                        //System.Diagnostics.Debug.WriteLine("即将执行kafka日志Producer");
                        var result = task.Result;
                        //Console.WriteLine(_prix+"--"+ logBuilder.ToString());
                    }
                }
                catch (Exception ep)
                {
                    System.Diagnostics.Debug.WriteLine("kafka同步出现问题,详细情况:{0}", ep.ToString());
                    blockColl.CompleteAdding();
                }
            });
        }
        ///添加
        private void AddCollMess(EntityMessages message)
        {
            if (!blockColl.IsAddingCompleted)
            {
                blockColl.Add(message);
            }
            else
            {
                var task = _kafkaService.Producer(_logStoreTopic
                                                  , message.Id, message);
                if (task == null)
                {
                    throw new NullReferenceException("方法没有返回有效的task");
                }

                //System.Diagnostics.Debug.WriteLine("即将执行kafka日志Producer");
                var result = task.Result;
                //Console.WriteLine(_prix+"--"+ logBuilder.ToString());
            }
        }
Exemple #3
0
        public async Task <ActionResult <string> > Get()
        {
            await _kafkaService.Producer("my-replicated-topic-morepart", "test", "你好test");

            return("执行成功了");
        }