Ich benutze eine benutzerdefinierte winston
Logger gleichzeitig schreiben auf der Konsole und in eine Datei abhängig von der Protokollierungsebene (d. H. Alles auf der Konsole, sondern nur Fehler und Warnungen für die Datei). Aus irgendeinem Grund funktioniert das Schreiben an die Konsole, während nichts in die Datei geschrieben wird, obwohl ich einen Fehler rufe.Winston schreibt nur auf einen einzigen Transport
Anfangs verwirrte ich die Reihenfolge der Stufen nach oben, von trace
= 0-error
= 9. steigen beginnen Während ich, dass das Setup winston
in die Datei geschrieben hatte, aber nicht an die Konsole. Ich nehme an, winston
schreibt nur auf einen Transport und stoppt dann?
Meine Config geht so:
import winston from 'winston';
const logger = new (winston.Logger)({
levels: {
trace: 9,
input: 8,
verbose: 7,
prompt: 6,
debug: 5,
info: 4,
data: 3,
help: 2,
warn: 1,
error: 0,
},
colors: {
trace: 'magenta',
input: 'grey',
verbose: 'cyan',
prompt: 'grey',
debug: 'blue',
info: 'green',
data: 'grey',
help: 'cyan',
warn: 'yellow',
error: 'red',
},
});
logger.add(winston.transports.Console, {
level: 'trace',
prettyPrint: true,
colorize: true,
silent: false,
timestamp: false,
});
logger.add(winston.transports.File, {
prettyPrint: false,
level: 'error',
silent: false,
colorize: true,
timestamp: true,
filename: `${__dirname}/../logs/error.log`,
maxsize: 40000,
maxFiles: 10,
json: false,
});