Wenn ja, wie kann es gemacht werden? Standardmäßig schreibt L4 in eine Textdatei. Ich stelle fest, dass Monolog Log auf Datenbank auf seiner github Seite protokollieren kann.Kann Laravel 4 in eine MySQL-Datenbank einloggen?
Antwort
Yep, könnten Sie einen Listener erstellen alles im routes.php
Event::listen('laravel.log', function($type,$message)
{
$log = new Log();
$log->message = $message;
$log->type = $type;
$log->update;
});
Oder alternativ anmelden, wenn Sie nur wollten 400 log Fehler und 500 Larvavel gibt es ein Log Event in der routes.php Datei die auf Fehler 404 und 500 hört, können Sie Ihren eigenen Code in diesem Ereignislistener schreiben. Also vorausgesetzt, Sie haben ein Modell namens Log definiert,
Event::listen('404', function()
{
$error = "404: " . URL::full();
Log::error($error);
$update = new Log();
$update->error = $error;
$update->update;
return Response::error('404');
});
Event::listen('500', function()
{
Log::error($error);
$update = new Log();
$update->error = $error;
$update->update;
return Response::error('500');
});
Wie Sie sehen können, wenn Sie weiter die Schlagzeile lesen, Monolog nativ unterstützt Schreiben auf Redis, MongoDB und CouchDB. Diese drei unterstützen alle ziemlich schwer (und schreiben im Fall von Redis sehr schwer). MySQL ist nicht da, weil die Protokollierung auf MySQL nicht wirklich die beste Idee der Welt ist.
Wenn Sie es wirklich tun möchten, können Sie die Dokumente zum Erstellen Ihrer eigenen Handler überprüfen, die erläutert, wie Sie einen PDO-Handler erstellen und verwenden, um in eine SQL-Datenbank schreiben: https://github.com/Seldaek/monolog/blob/master/doc/extending.md - Ich denke immer noch, es ist eine schlechte Idee , aber vielleicht rechtfertigt dies der Anwendungsfall.
Als ich die gleiche Forderung in meinem Projekt hatte, ich habe einen Handler erstellt für Monolog die Protokollausgabe auf MySQL zu schreiben. Es wird unter MIT-Lizenz veröffentlicht und ist über composer oder direkt unter erhältlich. Vielleicht einen Versuch wert.
In Laravel 5 jetzt ist es illuminate.log
Jetzt wird es wie
seineEvent::listen('illuminate.log', function($type,$message)
{
....
});
- 1. Glassfish 4 - kann sich nicht in Administration Console einloggen
- 2. testen Filter in Laravel 4
- 3. Kann keine Cookies in Laravel 4
- 4. Wie man eine Datei in Laravel 4
- 5. Mit Laravel Socialite auf Facebook einloggen
- 6. Laravel Socialite Google Registrieren und Einloggen
- 7. Laravel 5.2 Multi Auth nicht einloggen
- 8. Laravel 5 und Laravel 4
- 9. Wo kann ich Laravel 4-Filterklassen setzen?
- 10. Paket-Controller in Laravel 4
- 11. Laravel 4: Wie erstelle ich eine Bestätigungsmail?
- 12. Zweig Vorlagen in Laravel 4
- 13. Laravel 4 Stecksystem
- 14. aktive Links in Laravel 4
- 15. Überschreibe eine Core-Laravel-4-Klassen-Methode
- 16. Laravel 4: Auf eine gegebene URL umleiten
- 17. Unset cookie Laravel 4
- 18. JSONArray Parsing Laravel 4
- 19. Laravel 4 HTML-Bilder
- 20. Laravel 4 Form Texteingabe
- 21. Laravel 4 Datei hochladen
- 22. Laravel 4 - Datei-Upload
- 23. Laravel 4 benutzerdefinierte Auth
- 24. Laravel überschreiben 4 Paketansicht
- 25. Laravel 4 nach Hause
- 26. Laravel 4 CORS Installation
- 27. Laravel 4 Validierung
- 28. Laravel 4 - Catch Fehler
- 29. Laravel 4 Queue
- 30. MethodNotAllowedHttpException Laravel-4
Nur damit Sie wissen, über den Code nicht tatsächlich in L4 arbeiten, wenn Sie speziell das Ereignis mit dem Ereignisse auslösen: :Feuer(). In L4 müssen Sie den Hörer mit der Log-Klasse registrieren und nicht der Event-Klasse, zum Beispiel: 'Log :: hören (function ($ level, $ message, $ context) { // Code }) ; ' – JamesG
Warum ist das Speichern von Logs in MySQL keine gute Idee? –
@PavelKostenko denn wenn Sie jede Art von hohen Last Anwendung haben Sie eine Tonne von MySQL schreibt, die nicht wirklich das, was MySQL im Vergleich zu anderen spezialisierten Logging-Lösungen am besten ist. – Seldaek