2016-05-28 4 views
2

Im Serilog Ausgabe in einer Datei, sehe ich, dass der StandardEntfernen Standardeigenschaften in Serilog Output

{ 
    "Timestamp": "2016-05-28T21:21:59.0932348+08:00", 
    "Level": "Information", 
    "MessageTemplate": "Processed {@Number} records in {@Time} ms", 
    "Properties": { 
     "Number": 500, 
     "Time": 120 
    } 
} 

ist Gibt es eine Möglichkeit, die Timestamp, Ebene, messagetemplate und Eigenschaften zu entfernen, so dass ich "m links mit diesem nur

{ 
    "Number": 500, 
    "Time": 120 
} 

Die Log.Logger als solche

 Log.Logger = new LoggerConfiguration() 
      .WriteTo.Sink(new FileSink(ConfigurationManager.AppSettings["serilogPath"], new JsonFormatter(), null)) 
      .CreateLogger(); 

Dank zugewiesen

+0

Es kann auf die Senke und den Formatierer abhängen. Können Sie angeben, welche Senke Sie verwenden und wie Sie sie konfiguriert haben? – PatrickSteele

+0

@PatrickSteele I aktualisiert die Details – Bran

Antwort

2

Aus dem Blick auf die source code, sieht es nicht wie der JsonFormatter unterstützt überspringen diese Standardeigenschaften. Sie könnten Ihren eigenen ITextFormatter erstellen, der das tut, wonach Sie suchen. Hier ist ein kurzes Beispiel (das sollte nicht in der Produktion verwendet werden, da es nicht entkommt - es ist nur für Demozwecke):

+0

Perfekt, genau das, was ich gesucht habe. Danke – Bran

+0

Hallo, ich benutze Serilog Mongo Pkg. Ist es möglich, die Standardeigenschaft "MessageTemplate" aus dem generierten Mongo-Dokument zu entfernen? Danke – pregoli

+0

@pregoli Hey, das ist ein bisschen spät, aber Sie können das auf jeden Fall tun. Sie müssen den ursprünglichen Quellcode bearbeiten und den Teil des Codes entfernen, der diesen Schlüsselwert generiert. – Bran