如何在不使用布局的情况下在自定义目标中获取ThreadId?

时间:2018-04-09 11:03:33

标签: c# nlog

我确实创建了一个自定义db-target来登录我的数据库。它是一个非常简单的目标,它只会覆盖Write方法在我的数据库中创建一个日志条目。

这很好,所有信息都由LogEventInfo传递。

但是现在我要记录threadId。据我所知,NLog有布局参数${threadid}这样做。但我不想使用布局渲染器写入我的数据库。

我的问题

是否可以向LogEventInfo询问threadId?如果是的话:怎么样?如果否:NLog在哪里获得此ID?

1 个答案:

答案 0 :(得分:2)

您可以使用threadId布局创建属性(首选)或变量,并渲染该属性。

e.g。

Layout threadIdLayout = "${threadid}"; //for performance, as static property on the custom class is recommend

var threadId = threadIdLayout.Render(logEvent);