Empfohlene Methode, Bunyan auf eine große Knotenanwendung anzuwenden?

8

Ich arbeite an einer Knotenanwendung mit mehreren Modulen. Ich versuche jetzt, die Protokollierung richtig einzurichten (sollte es am Anfang getan haben) und mit Bunyan suchen.

Wäre es besser, ein einzelnes logger -Modul zu haben, das exportiert und dann von den anderen Modulen benötigt wird, wie in angegeben antworten Sie oder definieren Sie direkt in jedem Modul eine neue Instanz von bunyan logger und konfigurieren Sie sie entsprechend? Zur Wiederverwendung stelle ich mir erstere vor, aber ich weiß nicht, ob das in Zukunft restriktiv wäre.

Wenn ich einen einzelnen Logger wie

definiert habe %Vor%

Dann würden alle Module, die davon Gebrauch machen, auch mit dem Namen filter loggen, während es für jedes Modul sinnvoller wäre, sich bei einem Namen zu melden, der sich besser darstellt.

Habe ich auch Recht, dass alle Module Fehler in derselben Protokolldatei protokollieren sollten, z. systemErr.log (um einen besseren Überblick zu ermöglichen) oder sollten sie sich in ihre eigenen Fehlerprotokolle einloggen, z.B. module1Err.log, module2Err.log?

    
Philip O'Brien 30.10.2014, 10:12
quelle

1 Antwort

17
  

Wäre es besser, ein einzelnes Loggermodul zu haben, das exportiert und dann von den anderen Modulen benötigt wird

Ja . Je einfacher, desto besser. Dies vermeidet auch die Wiederholung der Protokolleinstellungen.

  

Habe ich auch Recht, dass alle Module Fehler in derselben Protokolldatei protokollieren sollten, z. systemErr.log (um einen besseren Überblick zu ermöglichen) oder sollten sie sich in ihre eigenen Fehlerprotokolle einloggen, z.B. module1Err.log, module2Err.log?

Eine Datei für die gesamte Anwendung. Da Bunyan das ndjson-Format verwendet, ist es einfach, die Hauptprotokolldatei bei Bedarf zu filtern. Ich empfehle die Einfachheit und Flexibilität der direkten Protokollierung in stdout und ermöglicht der Implementierungsumgebung zu entscheiden, wohin das gehen soll. Dies ist auch praktisch für die Entwicklung, bei der Sie wahrscheinlich keine Protokolldateien auf der Festplatte benötigen oder wollen. Tools wie upstart und multilog können Ihre stdout-Protokolle ordnungsgemäß auf die Festplatte schreiben und die Protokollrotation für Sie übernehmen.

Ein extra Tipp. Wenn ich mich lokal entwickle, führe ich meine App so aus:

%Vor%
  • node-dev startet automatisch neu, wenn ich den Code ändere
  • --inspect aktiviert den Debugger, an den ich mit chrome devtools
  • anhängen kann
  • tee kopiert stdout auf die Festplatte. Wenn ich also in Zukunft zurückgehen und Logs durchsuchen möchte, kann ich das tun, aber ich möchte nicht die vollständigen ndjson-Datensätze in meinem Terminal sehen
  • bunyan -o short gibt mir hübsch gedruckte Ausgaben an mein Terminal, was ich für die lokale Entwicklung haben möchte
Peter Lyons 30.10.2014, 10:33
quelle

Tags und Links