2017-07-13 4 views
0

でカスタムフィールドを定義する方法。インデックス内の特定のフィールドを定義するElasticsearchの機能を利用したいと思います。 Elasticsearch Nlog Target's文書には、フィールド定義hereの例が示されています。私はElasticsearchに私のログを送信するために、この<a href="https://github.com/ReactiveMarkets/NLog.Targets.ElasticSearch/" rel="nofollow noreferrer" title="Elasticsearch NLog Target">Elasticsearch Nlog Target</a>を使用していNLog Elasticsearchターゲット

私は、コードを介してこれをしたいと私は動的に私がログインする各メッセージのフィールドの値を設定します。

Elasticsearch側から物事を見て、私は私が定義されてきた。このようなものを、見て2つのカスタムフィールド、prop1prop2の値を設定したい:

Event schema

答えて

0

のおかげでElasticsearch NLog Target'sプロジェクト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; 
関連する問題