如何使用 NLog Elasticsearch Target 定义自定义字段
How to define custom Fields with NLog Elasticsearch Target
我正在使用这个 Elasticsearch Nlog Target to send my logs to Elasticsearch. I want to take advantage of Elasticsearch's ability to define specific Fields in an index. The Elasticsearch Nlog Target's docs show examples of field definitions here。
我想通过代码来做到这一点,我想为我记录的每条消息动态设置字段的值。
从 Elasticsearch 方面来看,我想看到这样的东西,我在其中定义并设置了两个自定义字段的值,prop1
和 prop2
:
感谢Elasticsearch NLog Target's project owners的帮助,我发现存在以下选项:
使用 NLog 的 Fluent API:
_myLogger.Info()
.Message("your log message.")
.Property("property1", "value1")
.Write();
_myTarget.IncludeAllProperties=True; // Must set on the Elasticsearch target
以下语法也是一个选项:
var myLogger = LogManager.GetCurrentClassLogger();
var eventInfo = new LogEventInfo(LogLevel.Info, MyLogger.Name, "Message");
eventInfo.Properties["CustomValue"] = "My custom string";
eventInfo.Properties["CustomDateTimeValue"] = new DateTime(2020, 10, 30, 11, 26, 50);
eventInfo.Properties.Add("CustomNumber", 42);
logger.Log(eventInfo);
_myTarget.IncludeAllProperties=True;
我正在使用这个 Elasticsearch Nlog Target to send my logs to Elasticsearch. I want to take advantage of Elasticsearch's ability to define specific Fields in an index. The Elasticsearch Nlog Target's docs show examples of field definitions here。
我想通过代码来做到这一点,我想为我记录的每条消息动态设置字段的值。
从 Elasticsearch 方面来看,我想看到这样的东西,我在其中定义并设置了两个自定义字段的值,prop1
和 prop2
:
感谢Elasticsearch NLog Target's project owners的帮助,我发现存在以下选项:
使用 NLog 的 Fluent API:
_myLogger.Info()
.Message("your log message.")
.Property("property1", "value1")
.Write();
_myTarget.IncludeAllProperties=True; // Must set on the Elasticsearch target
以下语法也是一个选项:
var myLogger = LogManager.GetCurrentClassLogger();
var eventInfo = new LogEventInfo(LogLevel.Info, MyLogger.Name, "Message");
eventInfo.Properties["CustomValue"] = "My custom string";
eventInfo.Properties["CustomDateTimeValue"] = new DateTime(2020, 10, 30, 11, 26, 50);
eventInfo.Properties.Add("CustomNumber", 42);
logger.Log(eventInfo);
_myTarget.IncludeAllProperties=True;