2017-03-23 4 views
0

Ich habe eine Node.js-Anwendung entwickelt, die Socket.IO, Express, MySql und https verwendet und alles hat funktioniert, bis ich es mit pm2 "deamonisierte". Nun scheint mein Sockel irgendwie nicht mehr zu reagieren und ich möchte ihn debuggen. Das Problem ist, dass ich nicht finden kann, wo die Funktion console.log() aus diesem Code seinen Text mehr ausgibt.Wie man auf ein Node.js-Anwendungsprotokoll zugreift, das durch pm2 geladen wurde

Wenn Sie möchten wissen, alle meine PM2-Prozesse sind online und ich kann meine Seiten von der Client-Seite aktualisieren. Es sollte jedoch eine Funktion auf dem Server geben, die ein Ereignis auf der Client-Seite auslöst, wenn etwas in der Datenbank passiert und dies nicht tut.

Konnte mir sagen, wo die Ausgabe von consone.log() geht?

Antwort

1

Von PM2 docs:

PM2 ermöglicht Ihnen die einfache Protokolle Ihrer Anwendung zu verwalten. Sie können die Protokolle anzeigen, die von allen Ihren Anwendungen in Echtzeit kommen, fluten Sie sie, und laden Sie sie neu. Es gibt auch verschiedene Möglichkeiten zu konfigurieren, wie PM2 Ihre Protokolle verarbeitet (getrennt in verschiedenen Dateien, zusammengeführt, mit Zeitstempel ...), ohne etwas in Ihrem Code zu ändern.

http://pm2.keymetrics.io/docs/usage/log-management/

Und andere Frage SO:

Make pm2 log to console

+0

ich bereits versucht haben * PM2 Flush * und dann * pm2 loggt * aber nichts zeigt auf dem Protokoll, wenn ich einen neuen Client eve verbinde Obwohl ich eine console.log() -Funktion habe, die jedes Mal aufgerufen wird, wenn ein neuer Client eine Verbindung herstellt. –

+0

Es scheint, dass ich dieses EADDRINUSE-Problem wieder hatte, also musste ich einen Prozess beenden und dann nur einen Prozess starten, um den WebSocket-Fehler nicht zu erhalten. Danach zeigte * pm2 logs * endlich, was ich erwartet hatte. Das Problem war woanders. Vielen Dank. –

Verwandte Themen