Dokumentacja Winston posiada sekcję na streaming logs który mówi:Jak działają strumienie dziennika Winstona?
Streaming pozwala przesyłać swoje logi z powrotem z wybranym transportu.
i daje Poniższy przykład kodu:
//
// Start at the end.
//
winston.stream({ start: -1 }).on('log', function(log) {
console.log(log);
});
Moje czytanie tego jest, że każda nowa wiadomość dziennika dodaje byłoby wyjście do konsoli. Konfiguracja {start: -1}
informuje strumień, aby rozpocząć na końcu pliku, więc wyprowadzane są tylko nowe wpisy dziennika. Oczekuję, że poniższy skrypt Node spowoduje, że każda istniejąca linia pliku test.log
będzie wyprowadzana na konsolę, a następnie nowy obiekt będzie wyprowadzany co 500ms później.
var winston = require('winston');
winston.add(winston.transports.File, {
filename: 'test.log'
});
winston.remove(winston.transports.Console);
winston.stream().on('log', function(log) {
console.log(log);
});
setInterval(function(){
winston.log('info', 'help');
}, 500);
spodziewałbym się zobaczyć coś jak poniżej:
{"level":"info","message":"help","timestamp":"2013-12-10T05:55:15.806Z"}
{"level":"info","message":"help","timestamp":"2013-12-10T05:55:16.307Z"}
{"level":"info","message":"help","timestamp":"2013-12-10T05:55:16.809Z"}
{"level":"info","message":"help","timestamp":"2013-12-10T05:55:17.309Z"}
{"level":"info","message":"help","timestamp":"2013-12-10T05:56:48.316Z"}
Co faktycznie występuje to, że rejestrowanie działa zgodnie z oczekiwaniami z transportem pliku (plik dostaje nowy wpis w dzienniku co 500ms) ale nie ma wyjścia do konsoli. Linia console.log(log)
nigdy nie jest wywoływana.
Czy przegapiłem coś oczywistego, lub źle zrozumiałem cel strumieni dziennika Winstona?
może używają konwencjonalnego zdarzenia "data"? – bevacqua
Miałem ten sam problem i podejrzewam, że nie działa z transportem plików lub konsoli, ponieważ są to dwa, których próbowałem, a wywołanie zwrotne nie jest wywoływane. @Nico, Ten kod jest bezpośrednio z README Winston i w kodzie: obecnie.emituj ("log", log); Problemem jest to, że nic, co próbowałem, nie wydaje się, aby to działało :( –
Dziękuję za potwierdzenie moich podejrzeń @RobinDuckett. Zrobiłbym to jako błąd, ale Winston wygląda mniej więcej martwo: https: // github. com/flatiron/winston/issues/294 Mógłby potrzebować rozwidlenia – drzax