private readonly ConcurrentBag<object> _objects = new ConcurrentBag<object>();
public void Log<T>(T data) where T : class
{
try
{
_objects.Add(data);
if (_objects.Count >= _logOption.TrackCount)
{
Task.Factory.StartNew(async () =>
{
var dataList = new List<object>();
for (int i = 0; i < _logOption.TrackCount; i++)
{
if (_objects.TryTake(out object item))
{
dataList.Add(item);
}
}
await SendToKafkaApi(dataList);
});
}
}
catch (Exception ex)
{
LogOnFile(ex);
}
}
private readonly ConcurrentBag<object> _objects = new ConcurrentBag<object>();
public void Log<T>(T data) where T : class
{
try
{
_objects.Add(data);
if (_objects.Count >= _logOption.TrackCount)
{
Task.Factory.StartNew(async () =>
{
var dataList = new List<object>();
for (int i = 0; i < _logOption.TrackCount; i++)
{
if (_objects.TryTake(out object item))
{
dataList.Add(item);
}
}
await SendToKafkaApi(dataList);
});
}
}
catch (Exception ex)
{
LogOnFile(ex);
}
}