2013-08-27 10 views
6

W jaki sposób można powiedzieć Winstonowi, aby logował wiele poziomów do jednego transportu? Na przykład, jeśli chcesz logować zarówno elementy poziomu info, jak i do konsoli, w jaki sposób to zrobiłbyś? Podając info nie rejestruje wszystkie poziomy, które są na poziomie informacji i bardziej krytyczne, po prostu rejestruje info. Przekazywanie tablicy poziomów do właściwości level nic nie robi.Jak dodać wiele poziomów do pojedynczego transportu w Winston?

winston.add(winston.transports.Console, { 
    colorize: true, 
    level: 'info' 
}); 

lub

winston.add(winstonMongo, { 
    safe: false, 
    db: 'logs', 
    collection: 'api', 
    level: 'info' 
}); 
+0

Czy poziom rejestru nie zwiększa się przyrostowo? Jeśli logujesz się do debugowania, czy nie zawiera informacji? –

+0

Wystąpił problem w moim kodzie, uniemożliwiający rejestrację. Poziom "informacji" obejmuje wszystkie kolejne poziomy. –

+0

Wygląda na to, że wystąpił błąd w kodzie syslog-config.js dla obiektu poziomów. Są one zamawiane na odwrocie z "emerg" na 0 i "debug" na 7. –

Odpowiedz

5

Określanie poziomu info obejmuje wszystkie poziomy, które są znacznie większe (np warn, error, debug). Podobnie, określenie warn obejmuje poziom warn oraz bardziej poważny poziom error.

+0

Weź następujący przykład: logger.info ("niektóre informacje"); logger.error ("jakiś błąd"); logger.myCustomLevel ("niektóre dostosowanie"); Transport konsoli jest dodawany do rejestratora z domyślnym poziomem (informacje): Przypuszczam, że każdy dziennik powinien być zapisany w konsoli, prawda? Jeśli nie, w jaki sposób mogę rejestrować różne poziomy w ramach pojedynczego transportu? Czy możesz wysłać przykład pracy z konsolą, plikiem lub jakimkolwiek transportem? – Wilk

1

Dla potomności dodałem fragment kodu z kodu źródłowego winston, który zawiera szczegóły domyślnych poziomów logowania. Jak wspomniano w innych odpowiedziach, określenie niższego poziomu rejestrowania loguje powyższe poziomy, np. Podanie wartości silly spowoduje zarejestrowanie wszystkich innych poziomów, natomiast określenie debug spowoduje zalogowanie się poza numerem silly.

npmConfig.levels = { 
    silly: 0, 
    debug: 1, 
    verbose: 2, 
    info: 3, 
    warn: 4, 
    error: 5 
}; 

Według Winston readme jest to "npm" styl ale npm document to linki do ma różne poziomy dziennika.

Powiązane problemy