Configurar nuestro propio nivel de log con Laravel

Una de las cosas que más podemos echar de menos en el fichero app.php de Larvel 4 es una variable donde podamos definir el nivel de log que queremos en nuestra aplicación.

Dado que en este fichero podemos añadir nuestras propias variables de configuración, vamos a crear nuestra propia variable de nivel de logs:

'log_level' => 'warning',

Donde los posibles valores para esta variable será uno de los siguientes [debug, info, notice, warning, error, critical, alert].

Por último, debemos indicarle a Laravel que utilice nuestras preferencias para logs, esto lo definiremos editando el fichero app/start/global, que es donde Laravel registra entre otras cosas la llamada a Logeador. Editamos esta línea:

Log::useDailyFiles(storage_path().'/logs/'.$logFile);

Pasándo ahora como parámetro nuestra variable definida anteriormente:

Log::useDailyFiles(storage_path() . '/logs/' . $logFile, 0, Config::get('app.log_level'));

Y listo, ya tenemos configurado nuestro propio nivel de Log con Laravel 🙂

Cacheando consultas con Laravel (Eloquent ORM && Query Builder)

Una funcionalidad tremendamente útil a la hora de mejorar el rendimiento de nuestras aplicaciones es el tema del cacheado de consultas a nuestro backend que se repiten en el tiempo.

Laravel nos permite cachear este tipo de consultas (bien sea a través de Eloquent o de consultas construidas con Query Builder) de una manera muy sencilla, tan sólo debemos hacer uso del método remember, veamos un ejemplo:

Company::where(‘sales’, ‘>’, ‘3000)->activities()->remember(60)->get()

En este caso, esta consulta, durante los 60 minutos posteriores a la ejecución, no consultará en la base de datos sino en el sistema de cacheado configurado (por defecto, alojará estas consultas en el directorio storage), optimizando de esta forma el rendimiento general de nuestra aplicación.

Obviamente debemos dejar este tipo de consultas para aquellos datos con un carácter estático a corto-medio plazo en el tiempo.