Heim >Backend-Entwicklung >PHP-Tutorial >Effektivere PHP
Dieser Artikel wurde von Logly gesponsert. Vielen Dank, dass Sie die Sponsoren unterstützt haben, die SitePoint ermöglichen.
Server überlastet, Bibliothek eine Ausnahme, Fehler beim Senden von E -Mails: Diese Fehler sind leider Teil jedes Systems. Wenn Sie für eine gute Funktion des Systems verantwortlich sind, ist dies immer noch ein kalter Komfort. Ich wette, Sie haben bereits alle Daten, die Sie benötigen, um sie in Ihren Protokolldateien zu sitzen.
, aber Zugriff auf diese Daten hilft nicht wirklich, es sei denn, Sie haben eine Möglichkeit, diese Daten zu speichern, zu verarbeiten und zu analysieren. In diesem Artikel werde ich erläutern, wie diese Daten effektiver verwendet werden, indem eine PHP -Protokollierungsbibliothek mit einer ordnungsgemäßen Lösung für Protokollverwaltungen verwendet wird (in diesem Fall legly). Ich werde auch ein Beispiel dafür zeigen, wie Sie einen Protokollverwaltungsdienst verwenden, um sie einfacher zu speichern und zu analysieren.
Bei der Anmeldung mit PHP verwenden wir die Funktionen für Fehler_log und Trigger_error oder können einen Fehlerhandler verwenden, um den Protokollierungsprozess generischer zu gestalten. Wenn Sie dies auf diese Weise tun, müssen Sie Ihre Funktionen in eine Art Objekt einwickeln, um die Dinge sauberer und flexibler zu machen. Sie können Ihre Protokolle auch direkt an Ihr System weiterleiten, um sie mit der Syslog -Funktion zu verarbeiten.
openlog('php', LOG\_CONS | LOG\_NDELAY | LOG\_PID, LOG\_USER | LOG\_PERROR); syslog(LOG\_ERR, 'Error!'); syslog(LOG\_INFO, 'Hello World!'); closelog();
Aber was würden Sie tun, wenn Sie gleichzeitig an mehreren Stellen protokollieren müssten, oder Sie abhängig von der Fehlerebene Protokolle an einen bestimmten Dienst gesendet haben? Anstatt integrierte Tools zu verwenden, ist es oft einfacher, Protokollierungsbibliotheken zu verwenden.
Während einige Bibliotheken wie Log4Php, Klogger und Monolog empfehlen, diese häufigen Probleme zu lösen, haben sie einige Einschränkungen, und das Monolog hat viele Vorteile gegenüber ihnen.
Überprüfen Sie die Dokumentation für weitere Informationen zum Paket. Die beliebtesten Frameworks enthalten Monolog außerhalb des Kontrollkästchens. Überprüfen Sie daher die vollständige Liste in der Dokumentation. Wenn Sie kein Monolog installiert haben, können Sie es einem Projekt mit Composer hinzufügen.
openlog('php', LOG\_CONS | LOG\_NDELAY | LOG\_PID, LOG\_USER | LOG\_PERROR); syslog(LOG\_ERR, 'Error!'); syslog(LOG\_INFO, 'Hello World!'); closelog();
Da die Protokollierung das Schreiben auf die Festplatte, das Durchführen von Backups und das Durchsuchen von Dateien erfordert, erstellen einige Unternehmen einen separaten Dienst, um den Job zu verarbeiten (normalerweise eine Reihe von Skripten oder Apps zu GREP -Dateien, die nach Informationen suchen, wenn eine Art von Fehler auftritt). Wenn sich Ihr Unternehmen oder Ihre Service skaliert, kann dies schnell zu einem Albtraum für Ihre Entwickler und Analysten werden. Eine andere, bessere Alternative ist ein Cloud -basierter Dienst für ihre Protokollspeicherung und -analyse, und dies hat viele Vorteile, da wir in diesem Artikel weiter diskutieren werden.
Es gibt mehrere Protokollverwaltungsdienste, die das Speichern und Analysieren Ihrer Protokolle erleichtern. Loggly ist das beliebteste und es gibt verschiedene Möglichkeiten, sich in PHP zu integrieren. Sobald Loggly Ihre Protokolle empfängt, können Sie Ihre Daten auf beeindruckende Weise suchen, gruppieren und visualisieren. Sie können es kostenlos versuchen. Sie zahlen nur, wenn Sie auf Ihrer Website einen beträchtlichen Verkehr haben. Beginnen wir zunäch
Verwenden Sie Loggly mit Monologstandardmäßig kommt es mit einem LogglyHandler für Loggly.
composer <span>require monolog/monolog</span>Nachdem wir eine Monologinstanz erstellt haben, werden wir unseren Handler in die Liste der registrierten Handler weitergeben, und Sie müssen Ihr Token, wie bereits erwähnt, zur Verfügung stellen. Der Tag -Teil ist optional, aber es ist immer eine gute Idee, Ihre Protokolleinträge zu trennen, indem Sie sie entsprechend markieren. Jetzt sind wir bereit, uns mit dem Monolog anfängeln.
<span>$logger = new <span>\Monolog\Logger</span>('local_test_app'); $logger->pushHandler(new <span>\Monolog\Handler\LogglyHandler</span>('YOUR_TOKEN/tag/monolog'));</span>
<span>$logger->addInfo("Info test from monolog"); //$logger->addWarning("Warning test from monolog");</span>Konfigurieren Sie legly auf Heroku
openlog('php', LOG\_CONS | LOG\_NDELAY | LOG\_PID, LOG\_USER | LOG\_PERROR); syslog(LOG\_ERR, 'Error!'); syslog(LOG\_INFO, 'Hello World!'); closelog();
Sie müssen das Token mit Ihrem tatsächlichen Token aktualisieren, das Sie auf der Seite Quell -Setup> Customer -Token finden können. Der Heroku_App_Name kann weggelassen werden, wenn Sie bereits in Ihrer Heroku -Instanz angemeldet sind. Andernfalls müssen Sie Ihren Heroku -Anwendungsnamen angeben.
Die Drain -URL endet mit Tag/Heroku. Dies hilft uns, unsere Protokolle mit dem definierten Tag zu filtern. Wir werden später mehr darüber sprechen.
loggly kann leicht in jeden externen Dienst wie Heroku integriert werden. Überprüfen Sie die protokollierte Dokumentation, um einen Überblick über Protokollübertragungsmethoden und verfügbare Skripte oder Bibliotheken zu erhalten.
Jetzt, da wir besprochen haben, wie Sie Ihre Protokolle an protokolliert senden, können wir mit der Analyse und Arbeiten mit unseren Daten beginnen. Die Suchseite enthält eine Reihe von Tools zum Filtern, Analysieren und Visualisieren unserer Protokolle.
Das Dashboard zeigt eine Zeitleiste Ihrer Ereignisse zusammen mit einer Liste von Protokollen unten. Die Spitze der Seite enthält ein Suchfeld und einen Datumsbereich, um Ereignisse zu filtern.
Filterprotokolle
interne Serverfehler
Sie können das Field Explorer -Widget auf der linken Seite der Seite verwenden, um die Protokolle mit dem Apache 5xx -Statuscode abzufiltern. Die Suche kann spezifisch sein wie "apache.status: 500" oder Sie können generischer wie "Apache.status: [500 bis 599]".
In PHP stoppt das Programm, wenn ein fataler Fehler geworfen wird, die Ausführung und protokolliert den Fehler in Ihrem System. Da fatale Fehler bei der Produktion nicht auftreten sollen, bietet Loggly eine einfache Möglichkeit, die Schwere der Fehler aus verschiedenen Quellen zu verfolgen. Der Begriff „syslog.appname: php“ zeigt nur PHP -Protokolle an ] ”. Sie können mehr über die Liste der verfügbaren Felder in der Dokumentation erfahren.
openlog('php', LOG\_CONS | LOG\_NDELAY | LOG\_PID, LOG\_USER | LOG\_PERROR); syslog(LOG\_ERR, 'Error!'); syslog(LOG\_INFO, 'Hello World!'); closelog();
Die meiste Zeit zeigen wir Ergebnisse als Liste an. Möglicherweise möchten Sie jedoch ein anderes Diagramm aus der Liste der Diagramme am Ende der Seite verwenden.
Eine meiner Lieblingsfunktionen auf Loggly ist das Alarm -Tool. Sie können Loggly so konfigurieren, dass Benachrichtigungen an Ihre E -Mail oder einen anderen Dienst gesendet werden, wenn eine Aktion auf Ihrer Bewerbung stattfindet. Gehen wir den Prozess im Detail durch.
Zuerst müssen Sie eine neue Suche erstellen und speichern. Nehmen wir diese Suche zum Beispiel: „syslog.appname: php und php.level:“ Fatal ERROR ””
Dies zeigt uns die Liste der tödlichen PHP -Fehler in unserem System. Als nächstes müssen wir diese Suchkriterien speichern. Klicken Sie oben rechts auf der Dashboard -Seite auf den kleinen Stern. Wählen Sie das Element „Diese Suche speichern“ und nennen Sie die Suche.
Jetzt können wir zur Liste der Warnungen wechseln und auf neu hinzufügen, um eine neue zu erstellen. Nachdem Sie Ihrem Alarm einen Namen und eine Beschreibung angegeben haben, können Sie eine gespeicherte Suche aus der Liste und einer Bedingung auswählen (Alarm, wenn die Anzahl innerhalb von 5 Minuten> = 1 ist). In meinem Beispiel werde ich eine E -Mail -Benachrichtigung senden. Wenn Sie jedoch einen Dienst haben, der den Fehler automatisch zur Überprüfung an Ihr Team weitergibt, können Sie ihn so konfigurieren, dass er an Ihren Endpunkt veröffentlichen wird. Sie können mehr über Warnungen über die Dokumentation lesen.
loggly kann die Art und Weise ändern, wie Sie mit Ihren Protokollen umgehen, von der Regexp -Suche bis zur Archivierung. Der Service hat auch eine großartige UX, und die Dokumentation ist sehr einfach und deckt die meisten Möglichkeiten ab. Sie können mit einer kostenlosen Testversion beginnen, um alle Funktionen zu testen. Wenn Sie Fragen haben, posten Sie sie unten und ich werde mein Bestes tun, um sie zu beantworten.
Wie erleichtert man PHP -Protokollierung?
Kann ich das Protokollformat in loggly anpassen? Dies bedeutet, dass Sie Ihre Protokolle so strukturieren können, dass Sie Ihren Anforderungen am besten entsprechen. Sie können verschiedene Daten in Ihre Protokolle aufnehmen, z. B. die Protokollebene, die Quelle des Protokolls, die Zeitstempel und alle anderen relevanten Informationen. Dies kann die Analyse der Protokolle erleichtern und nützliche Erkenntnisse extrahieren.
Das obige ist der detaillierte Inhalt vonEffektivere PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!