1 set_Exception_handler(callback $Exception_handler); //Ausnahme Erfassen Sie die Registrierung benutzerdefinierter Handlerfunktionen
1 set_error_handler(callback $error_handler); //Fehler Erfassen Sie die Registrierung benutzerdefinierter Handlerfunktionen
1 register_shutdown_function(callback $callback); //program Ungewöhnliche Registrierung der Beendigungsfehlererfassungs-Handlerfunktion während der Ausführung
<span>1</span> <span>set_exception_handler</span>(<span>array</span>("Myexception","exceptionHandler"<span>)); </span><span>2</span> <span>set_error_handler</span>(<span>array</span>("Myexception","errorHandler"<span>)); </span><span>3</span> <span>register_shutdown_function</span>(<span>array</span>("Myexception","shutdownHandler"));
<span>109</span> <span>/*</span><span>* </span><span>110</span> <span> * Attach the file write to logging. Multiple writers are supported. </span><span>111</span> <span>*/</span> <span>112</span> Kohana::<span>$log</span>->attach(<span>new</span> Log_File(APPPATH.'logs'));
Hiermit wird ein Protokollobjekt zum Protokollobjekt hinzugefügt Es handelt sich um unterschiedliche Klassenbibliotheksinstanzen in Kohana Das Protokollierungsobjekt ist in zwei Teile unterteilt. Es dient zur Verwaltung einer Protokollierungsobjektliste. Es ist eigentlich wie ein Container, der ein oder mehrere Protokollierungsobjekte enthält Im zweiten Teil werden diese Protokollierungsobjekte tatsächlich zum Aufzeichnen von Protokollen verwendet. Außerdem gibt es eine Reihe von Fehlerstufen, die für jedes Objekt aufgezeichnet werden müssen. Sie werden nur aufgezeichnet, wenn die Fehlerstufe erreicht ist, und werden weggelassen, wenn dies nicht der Fall ist. Das Folgende ist meine eigene vereinfachte Protokollierungsmethode nach dem Umbenennen:
<span>1</span> self::<span>$log</span> = <span>Log</span>::<span>instance(); </span><span>2</span> self::<span>$log</span>->attach(<span>new</span> Logwriter("./data/debug"),<span>Log</span>::<span>DEBUG); </span><span>3</span> self::<span>$log</span>->attach(<span>new</span> Logwriter("./data/notice"),<span>Log</span>::NOTICE);
Zum besseren Verständnis habe ich den „Container“ als „Log“ und die aufgezeichnete Instanz als „Logwriter“ bezeichnet. Sie können sehen, dass ich am Programmeingang leicht zwei verschiedene Protokolltypen hinzugefügt habe. Der erste ist „Alle Fehler mit Fehler aufzeichnen“. Zahlen kleiner als Log::DEBUG (Fehlerstufe höher als er) und gemäß den Regeln im Ordner ./data/debug aufzeichnen. Die zweite Möglichkeit besteht darin, Fehler mit einer Stufe gleich oder höher als Log::NOTICE aufzuzeichnen Natürlich können Sie auch detaillierter angeben, welche Fehler gut sind. Dies ist meiner Meinung nach praktisch und schnell. Wir können Fehlerprotokolle hinzufügen und sie entsprechend unseren Anforderungen aufteilen Schauen Sie sich das Bild unten an. Es wird zum Verständnis beitragen:
Die Beziehung zwischen Protokoll und Protokollschreiber
Auf dem Bild oben sehen Sie, dass es sich bei Log um einen Container handelt, der bestimmte unterschiedliche Logwriter-Objekte enthält. Wenn die Fehlerinformationen in die Datei geschrieben werden sollen, wird ein Logwriter ausgeführt Instanz, um zu sehen, ob Sie den Fehler in der Fehlermeldung aufzeichnen möchten. Wenn die Ebene in der Fehlermeldung nicht im Logwriter enthalten ist, wird sie ignoriert.
Wie funktioniert dieser Teil mit dem ersten Teil? Tatsächlich ist es sehr einfach, eine Ausnahme aufzurufen, um eine Fehlermeldung (einschließlich Fehlerort, Fehlercode, Fehlermeldung usw.) zum Fehlernachrichtenarray im Protokollcontainer hinzuzufügen Schreiben Sie diese Informationen nach dem Ende des Programms in die Datei. Bitte beachten Sie, dass beim Lesen des Kohana-Codes möglicherweise kein offensichtliches direktes Schreiben in das Protokoll erfolgt, da mehrere Fehler gleichzeitig auftreten können Wenn ein Fehler auftritt, zeichnen Sie ihn einfach einmal auf, was zusätzliche E/A und Zeit in Anspruch nimmt, bevor das Programm zurückkehrt. Daher besteht Kohanas Ansatz darin, alle Fehler, Ausnahmen und Protokolle standardmäßig in Log::$errormessage zu speichern. und sprechen Sie über das Protokoll, wenn Sie es instanziieren. Die Funktion dieser Funktion besteht darin, sie auszuführen, nachdem das Programm abnormal beendet wurde oder die Ausführung abgeschlossen ist Der Protokolldatensatz hat keinen großen Einfluss auf die Ausführung dieses PHP.
3. Beispielzusammenfassung
An dieser Stelle sollten Sie einen Überblick über das Protokollsystem haben, und Sie können bereits ein „Protokollsystem“ zur Verwendung schreiben. Dies ist die Github-Adresse, die das enthält Code und sehen Sie sich bei Bedarf Beispiele an.
https://github.com/AizuYan/phplog.git
Das Urheberrecht dieses Artikels liegt beim Autor (luluyrt@163.com) und dem Blogpark. Nach dem Nachdruck des Artikels ist der Autor und der Originaltextlink verboten müssen an einer gut sichtbaren Stelle auf der Artikelseite angegeben werden, andernfalls behalten wir uns eine rechtliche Haftung vor.
Das Obige hat das Protokollierungssystem in das PHP-Framework eingeführt, einschließlich seiner Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

PHP entstand 1994 und wurde von Rasmuslerdorf entwickelt. Es wurde ursprünglich verwendet, um Website-Besucher zu verfolgen und sich nach und nach zu einer serverseitigen Skriptsprache entwickelt und in der Webentwicklung häufig verwendet. Python wurde Ende der 1980er Jahre von Guidovan Rossum entwickelt und erstmals 1991 veröffentlicht. Es betont die Lesbarkeit und Einfachheit der Code und ist für wissenschaftliche Computer, Datenanalysen und andere Bereiche geeignet.

PHP eignet sich für Webentwicklung und schnelles Prototyping, und Python eignet sich für Datenwissenschaft und maschinelles Lernen. 1.PHP wird für die dynamische Webentwicklung verwendet, mit einfacher Syntax und für schnelle Entwicklung geeignet. 2. Python hat eine kurze Syntax, ist für mehrere Felder geeignet und ein starkes Bibliotheksökosystem.

PHP bleibt im Modernisierungsprozess wichtig, da es eine große Anzahl von Websites und Anwendungen unterstützt und sich den Entwicklungsbedürfnissen durch Frameworks anpasst. 1.PHP7 verbessert die Leistung und führt neue Funktionen ein. 2. Moderne Frameworks wie Laravel, Symfony und Codesigniter vereinfachen die Entwicklung und verbessern die Codequalität. 3.. Leistungsoptimierung und Best Practices verbessern die Anwendungseffizienz weiter.

PhPhas significantantyPactedWebDevelopmentAndendendsbeyondit.1) iTpowersMAjorPlatforms-LikewordpressandExcelsInDatabaseInteractions.2) php'SadaptabilityAllowStoscaleForLargeApplicationsfraMe-Linien-Linien-Linien-Linienkripte

PHP -Typ -Eingabeaufforderungen zur Verbesserung der Codequalität und der Lesbarkeit. 1) Tipps zum Skalartyp: Da Php7.0 in den Funktionsparametern wie int, float usw. angegeben werden dürfen. 3) Eingabeaufforderung für Gewerkschaftstyp: Da Php8.0 in Funktionsparametern oder Rückgabetypen angegeben werden dürfen. 4) Nullierstyp Eingabeaufforderung: Ermöglicht die Einbeziehung von Nullwerten und Handlungsfunktionen, die Nullwerte zurückgeben können.

Verwenden Sie in PHP das Klonschlüsselwort, um eine Kopie des Objekts zu erstellen und das Klonierungsverhalten über die \ _ \ _ Clone Magic -Methode anzupassen. 1. Verwenden Sie das Klonschlüsselwort, um eine flache Kopie zu erstellen und die Eigenschaften des Objekts, nicht die Eigenschaften des Objekts zu klonen. 2. Die \ _ \ _ Klonmethode kann verschachtelte Objekte tief kopieren, um flache Kopierprobleme zu vermeiden. 3. achten Sie darauf, dass kreisförmige Referenzen und Leistungsprobleme beim Klonen vermieden werden, und optimieren Sie die Klonierungsvorgänge, um die Effizienz zu verbessern.

PHP eignet sich für Webentwicklungs- und Content -Management -Systeme, und Python eignet sich für Datenwissenschafts-, maschinelles Lernen- und Automatisierungsskripte. 1.PHP hat eine gute Leistung beim Erstellen von schnellen und skalierbaren Websites und Anwendungen und wird üblicherweise in CMS wie WordPress verwendet. 2. Python hat sich in den Bereichen Datenwissenschaft und maschinelles Lernen mit reichen Bibliotheken wie Numpy und TensorFlow übertrifft.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Dreamweaver Mac
Visuelle Webentwicklungstools

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools