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

C# 如何在不使用布局的情况下在自定义目标中获取ThreadId?,c#,nlog,C#,Nlog,我确实创建了一个自定义db目标来登录到我的数据库。这是一个非常简单的目标,它只覆盖Write方法来在我的数据库中创建日志条目 这工作正常,所有信息都由LogEventInfo传递 但是现在我想记录threadId。据我所知,NLog使用布局参数${threadid}来实现这一点。但我不想使用布局渲染器写入数据库 我的问题 是否可以向LogEventInfo询问threadId?如果是:如何?如果否:NLog从何处获取此id?您可以使用threadId布局创建属性(首选)或变量,并呈现该属性或变量

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

这工作正常,所有信息都由
LogEventInfo
传递

但是现在我想记录threadId。据我所知,NLog使用布局参数
${threadid}
来实现这一点。但我不想使用布局渲染器写入数据库

我的问题 是否可以向
LogEventInfo
询问
threadId
?如果是:如何?如果否:NLog从何处获取此id?

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

e、 g


完全正确。我想我想把它复杂化了,尽量避免渲染太多:D
Layout threadIdLayout = "${threadid}"; //for performance, as static property on the custom class is recommend

var threadId = threadIdLayout.Render(logEvent);