Das Logger-Dienstprogramm, das npm verwendet.
Dieser Logger ist sehr einfach. Es übernimmt die Protokollierung für npm. Es unterstützt benutzerdefinierte Ebenen und farbige Ausgabe.
Standardmäßig werden Protokolle in stderr geschrieben. Wenn Sie Protokollnachrichten an andere Ausgaben als Streams senden möchten, können Sie das Mitglied log.stream
ändern oder einfach die von ihm ausgegebenen Ereignisse abhören und mit ihnen machen, was Sie wollen.
npm install npmlog --save
var log = require ( 'npmlog' )
// additional stuff ---------------------------+
// message ----------+ |
// prefix ----+ | |
// level -+ | | |
// v v v v
log . info ( 'fyi' , 'I have a kitty cat: %j' , myKittyCat )
Die Ebene, auf der Protokolle angezeigt werden sollen. Alle Protokolle auf oder über dieser Ebene werden angezeigt. Die spezielle silent
verhindert, dass jemals etwas angezeigt wird.
Ein Array aller eingegebenen Protokollmeldungen.
Die maximale Anzahl der aufzubewahrenden Datensätze. Wenn log.record diesen Wert um mehr als 10 % überschreitet, wird es auf 90 % dieses Werts reduziert.
Der Grund für das 10 %-Fenster besteht darin, dass die Größe eines großen Arrays nicht bei jedem Protokolleintrag geändert werden muss.
Ein Stilobjekt, das angibt, wie Präfixe gestaltet werden. (Siehe unten)
Ein Stilobjekt, das angibt, wie die Überschrift gestaltet ist. (Siehe unten)
Wenn festgelegt, wird eine Überschrift am Anfang jeder Zeile gedruckt.
process.stderr
Der Stream, in den die Ausgabe geschrieben wird.
Erzwingen Sie die Verwendung von Farben für alle Nachrichten, unabhängig vom Ausgabestream.
Deaktivieren Sie die Farben für alle Nachrichten.
Aktivieren Sie die Anzeige des Protokollaktivitäts-Spinners und der Fortschrittsleiste
Deaktivieren Sie die Anzeige eines Fortschrittsbalkens
Erzwingen Sie die Verwendung des Unicode-Designs für den Fortschrittsbalken.
Deaktivieren Sie die Verwendung von Unicode in der Fortschrittsleiste.
Legen Sie eine Vorlage für die Ausgabe des Fortschrittsbalkens fest. Weitere Informationen finden Sie in der Dokumentation des Messgeräts.
Wählen Sie ein Themenset aus, aus dem Sie Themen für die Fortschrittsleiste auswählen möchten. Weitere Informationen finden Sie in der Dokumentation des Messgeräts.
Hören Sie auf, Nachrichten an den Stream zu senden, aber lassen Sie sie nicht fallen.
Alle gepufferten Nachrichten ausgeben, die während der Pause geschrieben wurden.
level
{String} Die Ebene, auf der die Nachricht ausgegeben werden sollprefix
{String} Ein String-Präfix. Zum Überspringen auf „“ stellen.message...
Argumente für util.format
Gibt eine Protokollnachricht auf der angegebenen Ebene aus.
Zum Beispiel,
Wie log.log(level, prefix, message, ...)
. Auf diese Weise erhält jede Ebene eine Abkürzung, sodass Sie log.info(prefix, message)
ausführen können.
level
{String} Level-Indikatorn
{Number} Die numerische Ebenestyle
{Object} Objekt mit fg, bg, inverse usw.disp
{String} Optionaler Ersatz für level
in der Ausgabe.Richtet ein neues Level mit einer Kurzschriftfunktion usw. ein.
Beachten Sie, dass bei einer Zahl von Infinity
alle Protokollmeldungen unterdrückt werden, wenn Sie die Stufe darauf festlegen. Wenn die Zahl -Infinity
lautet, besteht die einzige Möglichkeit, sie anzuzeigen, darin, alle Protokollmeldungen zu aktivieren.
name
{String} Optional; Name des Fortschrittselements.todo
{Number} Optional; Gesamtumfang der zu erledigenden Arbeit. Standard 0.weight
{Number} Optional; das Gewicht dieses Artikels im Verhältnis zu anderen. Standard 1. Dies fügt dem Fortschrittstracker einen neuen Artikel are-we-there-yet
hinzu. Das zurückgegebene Objekt verfügt über die log[level]
-Methoden, ist aber ansonsten ein are-we-there-yet
Tracker
Objekt.
Dadurch wird dem Fortschrittstracker ein neuer are-we-there-yet
-Stream-Tracker hinzugefügt. Das zurückgegebene Objekt verfügt über die log[level]
-Methoden, ist aber ansonsten ein are-we-there-yet
TrackerStream
Objekt.
Dadurch wird dem Fortschrittstracker eine neue are-we-there-yet
“-Trackergruppe hinzugefügt. Das zurückgegebene Objekt verfügt über die log[level]
-Methoden, ist aber ansonsten ein are-we-there-yet
TrackerGroup
Objekt.
Alle Ereignisse werden mit dem Nachrichtenobjekt ausgegeben.
log
Wird für alle Nachrichten ausgegebenlog.
Wird für alle Nachrichten mit der Ebene
ausgegeben.
Nachrichten mit Präfixen geben ihr Präfix auch als Ereignis aus.Stilobjekte können die folgenden Felder haben:
fg
{String} Farbe für den Vordergrundtextbg
{String} Farbe für den Hintergrundbold
, inverse
, underline
{Boolean} Legt die zugehörige Eigenschaft festbell
{Boolean} Machen Sie ein Geräusch (Das ist wahrscheinlich ziemlich nervig.) Jedes Protokollereignis wird mit einem Nachrichtenobjekt ausgegeben und die Liste log.record
enthält alle erstellten Ereignisse. Sie haben die folgenden Felder:
id
{Nummer}level
{String}prefix
{String}message
{String} Ergebnis von util.format()
messageRaw
{Array} Argumente für util.format()
Wir verwenden set-blocking
um die stderr- und stdout-Blockierung festzulegen, wenn es sich um TTYs handelt und der setBlocking-Aufruf vorhanden ist. Dies ist eine Lösung für ein Problem in frühen Versionen von Node.js 6.x, das dazu führte, dass stderr und stdout unter OSX nicht blockierten. (Sie blockieren immer Windows und haben unter Linux nie blockiert.) npmlog
benötigt sie, um zu blockieren, damit die Ausgabe an stdout und stderr interlaced werden kann.