
Leichtes Komponist -Paket für die Datei -Protokollierung mit der Möglichkeit, Fehler mit Webhook zu senden.
Nutzungsbeispiel
Um den Pfad für alle Protokolldateien global einzurichten, können Sie setPath -Methode in Ihrer Bootstrap -Datei aufrufen.
use Serhii TinyLogger Logger ;
Logger:: setPath ( ' logs/errors.log ' ); // simple format
Logger:: setPath ( ' logs/%s.log ' , ' errors ' ); // sprintf formatHinweis: Wenn Sie Logger in Cron -Skripten oder so etwas wie WordPress -Hook verwenden möchten, müssen Sie
setPath()im ersten Schritt der Skriptausführung aufrufen, dies bedeutet, dass Ihr Projekt möglicherweise mehrere Orte hat, an denen Sie den Pfad für Ihre Protokolle festlegen müssen. Wenn SiesetPath()nicht aufrufen möchten, können Sie den Pfad einfach als drittes Argument an eine Funktiontiny_log()übergeben. Siehe ein Beispiel im Nutzungsabschnitt.
Dieses Paket wird mit einer Funktion tiny_log() ausgestattet, wobei keine zweite und dritte Argumente erforderlich sind.
tiny_log ( ' Some error message ' );
// Output in file: [2020-01-12 04:09:16] error: Some error message.
tiny_log ( ' Some error message ' , ' info ' );
// Output in file: [2020-01-12 04:09:16] info: Some error message.
tiny_log ( ' Some error message ' , ' debug ' , ' logs/debug.log ' );
// If you don't need to set path globally, just pass file path as the third argument to the tiny_log function .Sie können auch die Logger -Klasse verwenden, wenn Sie möchten. Es wird dasselbe wie die Verwendung der Funktion tun.
use Serhii TinyLogger Logger ;
Logger:: new ()-> error ( ' Some error message ' );
Logger:: new ()-> info ( ' Some info message ' );
Logger:: new ()-> debug ( ' Some error message ' ); Für die Verwendung einer der verfügbaren Optionen können Sie optional ein bestimmtes Flag an die Funktion tiny_log() als zweites Argument übergeben. Wenn Sie auch den Fehlertyp übergeben müssen, trennen Sie sie einfach mit der Pipe | Charakter. Siehe das Beispiel mit Option pos :
tiny_log ( ' Some error message ' , ' pos ' ); // just passing option
tiny_log ( ' Some error message ' , ' pos|error ' ); // 'pos' option with error type 'error'
tiny_log ( ' Some error message ' , ' pos|info ' ); // 'pos' option with error type 'info' pos - Position des Loggers anzeigen. In welcher Datei und auf welcher Zeilennummer es ist. Es ist nützlich, wenn Sie debuggen, um nicht zu vergessen, wo Sie Ihren Logger einstellen. Siehe das Beispiel der Ausgabe: [2020-01-12 04:09:16] info: Some log message goes here
>>> /var/www/html/app/Services/App.php on line: 77.
Mit Tiny Logger können Sie Protokolle als JSON -Objekt für einen bestimmten Endpunkt senden. Um diese Option zu aktivieren, müssen Sie die enablePostRequest in der Logger aufrufen. Um die Postanforderung zu deaktivieren, verwenden Sie die disablePostRequest -Methode.
use Serhii TinyLogger Logger ;
Logger:: enablePostRequest ( ' http://my-site.com/webhook ' ); Wenn nun Fehler auftritt, wird JSON mit der Postanforderung an http://my-site.com/webhook Endpoint gesendet.
{
"timestamp" : " 1611675632 " ,
"message" : " Undefined variable at line 24 in \ App \ Models \ User class. " ,
"type" : " error "
} Wenn Sie die JSON -Objektstruktur anpassen müssen, können Sie das Array als zweites Argument zur enablePostRequest übergeben.
use Serhii TinyLogger JsonFieldValue ;
use Serhii TinyLogger Logger ;
Logger:: enablePostRequest ( ' http://my-site.com/webhook ' , [
' time ' => JsonFieldValue:: TIMESTAMP ,
' errorMessage ' => ' Error message: ' . JsonFieldValue:: MESSAGE ,
' errorType ' => JsonFieldValue:: ERROR_TYPE ,
' token ' => getenv ( ' MY_AUTH_TOKEN ' )
]);Jetzt bekommst du JSON so:
{
"time" : " 1611675632 " ,
"errorMessage" : " Error message: Undefined variable at line 24 in \ App \ Models \ User class. " ,
"errorType" : " error " ,
"token" : " 29d62x7g656e6f9 "
}Jede JsonfieldValue -Konstante wird durch ihren Wert ersetzt. Zum Beispiel wird JsonfieldValue :: Meldung durch die Fehlermeldung ersetzt. JsonfieldValue :: TimeStamp wird durch Fehlerzeitstempel ersetzt.
Hinweis: Wenn Sie Logger in Cron -Skripten oder so etwas wie WordPress -Hook verwenden möchten, müssen Sie in dem ersten Schritt der Skriptausführung
enablePostRequestaufrufen.
Um alle PHP -Abhängigkeiten zu installieren, müssen Sie den Komponisten -PHP -Paket -Manager auf Ihrem Computer installieren lassen. Dann müssen Sie den folgenden Befehl in Ihrem Stammverzeichnis des Projekts ausführen.
composer require serhii/tiny-logger