如何以编程方式在 Stackdriver 中将 NLog 与 JsonPayload 结合使用
How to use NLog with JsonPayload in Stackdriver Programmatically
我正在尝试使用带有 JsonLayout 和 JsonPayload 的 NLog 将日志发送到 Stackdriver。但是,我的 JsonAttributes 没有在 JsonPayload 中显示为单独的 fields/labels。当前有效负载中显示的唯一属性是“消息”。
这是我的目标代码:
var stackdriverTarget = new GoogleStackdriverTarget
{
ProjectId = "development-212820",
Name = "stackdriver",
LogId = "science",
IncludeEventProperties = true,
Layout = new JsonLayout
{
Attributes =
{
new JsonAttribute("message", "${message}",false),
new JsonAttribute("exception", "${exception:format=toString}",false)
}
},
SendJsonPayload = true
};
在 GCP 中以 this
结束
我假设我在这里做错了什么,但我不能——我这辈子——弄清楚那是什么。我以前使用过 GCP 日志记录客户端库,这些类型的东西通常只是标签,但我想利用 NLog 和 JsonPayload。我看过堆栈文章 ,它没有回答我的问题。
尝试像这样使用 ContextProperties
:
var stackdriverTarget = new GoogleStackdriverTarget
{
ProjectId = "development-212820",
Name = "stackdriver",
LogId = "science",
Layout = "${message}",
SendJsonPayload = true,
IncludeEventProperties = true,
ContextProperties = { new TargetPropertyWithContext("exception", "${exception:format=toString}") },
};
如果您想完全覆盖 JsonPayload(性能受到影响),则可以升级到 Google.Cloud.Logging.NLog ver. 3.2.0 and activate EnableJsonLayout。
我正在尝试使用带有 JsonLayout 和 JsonPayload 的 NLog 将日志发送到 Stackdriver。但是,我的 JsonAttributes 没有在 JsonPayload 中显示为单独的 fields/labels。当前有效负载中显示的唯一属性是“消息”。
这是我的目标代码:
var stackdriverTarget = new GoogleStackdriverTarget
{
ProjectId = "development-212820",
Name = "stackdriver",
LogId = "science",
IncludeEventProperties = true,
Layout = new JsonLayout
{
Attributes =
{
new JsonAttribute("message", "${message}",false),
new JsonAttribute("exception", "${exception:format=toString}",false)
}
},
SendJsonPayload = true
};
在 GCP 中以 this
结束我假设我在这里做错了什么,但我不能——我这辈子——弄清楚那是什么。我以前使用过 GCP 日志记录客户端库,这些类型的东西通常只是标签,但我想利用 NLog 和 JsonPayload。我看过堆栈文章
尝试像这样使用 ContextProperties
:
var stackdriverTarget = new GoogleStackdriverTarget
{
ProjectId = "development-212820",
Name = "stackdriver",
LogId = "science",
Layout = "${message}",
SendJsonPayload = true,
IncludeEventProperties = true,
ContextProperties = { new TargetPropertyWithContext("exception", "${exception:format=toString}") },
};
如果您想完全覆盖 JsonPayload(性能受到影响),则可以升级到 Google.Cloud.Logging.NLog ver. 3.2.0 and activate EnableJsonLayout。