2016-07-27 23 views
0

Ich bin Protokollierung von Benutzeraktionen in Elasticsearch mit und ich bin mit C# Log4NetShop ein Integer-Wert in Elasticsearch wenn Log4Net

ich die C# NEST Bibliothek bin mit der Elasticsearch Datenbank zuzugreifen.

Meine Logzeile sieht wie folgt aus:

{ 
     "_index" : "log-2016.07.27", 
     "_type" : "logEvent", 
     "_id" : "AVYrwmW5Hc5CAgECpn_X", 
     "_score" : 1.0, 
     "_source" : { 
     "timeStamp" : "2016-07-27T09:49:35.3774113Z", 
     "message" : "Upload file operation took 11683 ms", 
     "loggerName" : "Reviewer.Web.WebApi.GroupsController", 
     "identity" : "", 
     "level" : "INFO", 
     "properties" : { 
      "log4net:UserName" : "CORP\\g", 
      "log4net:ElapsedTime" : "11683", 
      "log4net:Identity" : "", 
      "IP" : "::1", 
      "log4net:HostName" : "GBWOTIOM68052D", 
      "@timestamp" : "2016-07-27T09:49:35.3774113Z" 
     } 
     } 

ich den log4net:ElapsedTime Wert als anstelle einer Zeichenfolge Integer gespeichert haben möchten.

zur Zeit mache ich dies, wenn eine verstrichene Zeit zu speichern:

long ms = 1000; 
LogicalThreadContext.Properties["log4net:ElapsedTime"] = ms; 

Ich weiß, dass ich eine Vorlage angeben, um sollte Elasticsearch zu sagen, den verstrichene Wert als Integer zu speichern, aber wie es zu tun?

Antwort

1

Wenn Sie möchten, dass elasticsearch Ihr Feld erkennt, sollten Sie Ihren Datenwert ohne Anführungszeichen senden.

curl -XPUT 'localhost:9200/tmp/tmp/1' -d '{ 
    "field1":"3", 
    "field2":3 
}' 

-

curl -XGET 'localhost:9200/tmp' 
{"tmp":{"aliases":{},"mappings":{"tmp":{"properties":{"field1":{"type":"string"},"field2":{"type":"long"}}}},"settings":{"index":{"creation_date":"1469621916488","uuid":"Qj64-CU5RUW6ShOyRqLZXQ","number_of_replicas":"0","number_of_shards":"1","version":{"created":"1070599"}}},"warmers":{}}} 

können Sie sehen field1 String ist aber field2 numerisch ist.

+0

uhm .. danke für Ihre Antwort, aber ich spreche mit ES mit NEST2 –

+0

Vielleicht hilft diese Seite: https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/auto -map.html # Attribut-Mapping – alpert