如果发送到ITargetblock,则为TPL Dataflow日志项

时间:2017-11-08 14:05:42

标签: c# logging task-parallel-library tpl-dataflow

我实际上遇到了TPL数据流的问题(似乎项目被添加了两次)。因此,我想知道是否有注入回调的选项,如果项目被发布到目标块,我可以使用它进行日志记录。我检查了ActionBlockBufferBlock构造函数以及LinkTo方法,但没有找到任何内容。

任何提示?

1 个答案:

答案 0 :(得分:1)

不,因为TPL Dataflow是非常轻量级的库,你需要改为使用装饰器块,或者使用一些日志缓冲区,比如TransformBlock基本上只记录消息,如下所示:

var loggingTransform = new TransformBlock<TIn, TOut>(m => 
{
    Logger.Info(m);
    return m;
});

一些有用的链接: