Se sì, come può essere fatto? Di default L4 scrive su un file di testo. Ho notato che Monolog può accedere al database sulla sua pagina github.Can Laravel 4 può accedere a un database MySQL?
risposta
Sì, è possibile creare un ascoltatore per registrare tutto nel routes.php
Event::listen('laravel.log', function($type,$message)
{
$log = new Log();
$log->message = $message;
$log->type = $type;
$log->update;
});
Oppure, in alternativa, se si voleva registrare solo gli errori 400 e 500 Larvavel c'è un evento registro nel file routes.php che ascolta gli errori 404 e 500, è possibile scrivere il proprio codice in questo listener di eventi. Quindi, a patto di avere un modello chiamato Log definito,
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');
});
Come si può vedere leggendo ulteriormente il titolo, Monolog supporta nativamente la scrittura su Redis, MongoDB e CouchDB. Questi tre stanno tutti supportando casi d'uso abbastanza pesanti (e molto pesanti nel caso di Redis). MySQL non è lì perché accedere a MySQL non è la migliore idea al mondo.
Se si vuole veramente farlo, è possibile controllare i documenti sulla creazione del proprio gestore, che spiega come creare e utilizzare un gestore PDO per scrivere su un database SQL: https://github.com/Seldaek/monolog/blob/master/doc/extending.md - Continuo a pensare che sia una cattiva idea , ma forse il caso d'uso lo giustifica.
In laravel 5 ora è illuminate.log
Ora sarà come
Event::listen('illuminate.log', function($type,$message)
{
....
});
- 1. Passare argomenti a un filtro - Laravel 4
- 2. Istruzione di database Laravel 4 creare trigger
- 3. non può accedere al database in moodle
- 4. Laravel 4: reindirizzamento a un determinato URL
- 5. CakePHP: impossibile accedere al database MySQL
- 6. Laravel 4 - Errori di cattura
- 7. Laravel 4 - Caricamento file
- 8. Laravel 4 non può eseguire query RAW intere
- 9. Can Mysql Dividere una colonna?
- 10. javascript può accedere a un filesystem?
- 11. Can Capistrano può impostare variabili in base a un ruolo?
- 12. Laravel 4 immagini HTML
- 13. Laravel 4 Eager Caricamento "Proprietà non definita"
- 14. Aggiunta di Foundation 5 a Laravel 4
- 15. Can Envers utilizza un database diverso?
- 16. non può concedere privilegi al database mysql
- 17. Come aggiungere classi a Laravel 4 Forms
- 18. Come accedere a un particolare valore dal database mysql usando php?
- 19. Creazione della procedura MYSQL in Laravel 4 Migrazioni
- 20. Laravel 4 eloquente tabella pivot
- 21. Laravel 4 Elimina soft cascade
- 22. Proprietà indefinita: Illuminate \ Database \ Eloquent \ Collezione :: $ id Laravel 4
- 23. Accesso a un database MySQL in Electron
- 24. Autenticazione Laravel 4 non funzionante
- 25. CORS with Laravel 4
- 26. laravel 4 Convalida
- 27. Can ToArray() può generare un'eccezione?
- 28. Can MongoDB può ordinare alfanumerico?
- 29. laravel 4 Eccezione: NotFoundHttpException
- 30. Caricamento file Laravel 4
Giusto per farvi sapere, il codice di cui sopra non potrà mai funzionare in L4 a meno che non espressamente attivare l'evento utilizzando Event: :fuoco(). In L4 è necessario registrare il listener con la classe Log piuttosto che la classe Event, per esempio: 'Log :: ascoltare (function (livello di $, $ message, $ contesto) {// codice }) ; ' – JamesG
Perché archiviare i log in MySQL non è una buona idea? –
@PavelKostenko perché se si dispone di un qualsiasi tipo di applicazione a carico elevato, si avrà un sacco di scritture MySQL che non è proprio ciò che MySQL è il migliore rispetto ad altre soluzioni di registrazione specializzate. – Seldaek