Wie ändere ich meine Knoten winston JSON-Ausgabe für die einzelne Zeile
Wenn ich eine nodejs-winston-console-logger und setzen json:true
es immer Ausgabe JSON-Protokolle im multiline-format. Wenn ich die pipe in eine Datei, und versuchen Sie zu grep, die Datei, mein grep trifft, umfassen nur einen Teil der log-Zeile. Ich möchte winston um die Ausgabe meiner log-Zeilen im JSON-format, aber nicht zu hübsch drucken Sie die JSON -
Hier ist meine config (coffeescript, Entschuldigung):
winston = require 'winston'
logger = new (winston.Logger)(
transports: [
new winston.transports.Console({
json: true
})
]
)
Und einige Beispiel-Ausgabe:
{
"name": "User4",
"level": "info",
"message": "multi line whyyyyy"
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
winston 3.x (aktuelle version)
Standard-formatter
Beispiel
Benutzerdefinierte formatter -
Beispiel:
winston 2.x (legacy version)
Scheint es, dass die akzeptierte Antwort ist veraltet. Hier ist, wie dies für winston aktuellen version (2.3.1):
Beachten Sie die Klammern um
winston.transports.Console
.TypeError: (intermediate value) is not a function
mit"winston": "^3.0.0-rc1"
Winston Transporte bieten eine Möglichkeit zum überschreiben Sie die stringify-Methode, also durch ändern der config oben bekam ich eine einzige Zeile JSON-Ausgabe.
Neue config:
"winston": "^3.0.0"
Ausgabe:
2018-08-11T13:13:37.554Z [info] : {"data":{"hello":"Hello, World"}}
wird ganz schön Druck das json-Objekt