Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel 5 - change default log location, move log file outside the app

How can I change default log file location <project-name>/storage/logs/laravel.log to something like /var/logs/<project-name>/laravel.log?

like image 830
Limon Monte Avatar asked Nov 20 '15 11:11

Limon Monte


2 Answers

I resolved this case by using errorlog logging model and configuring webserver.

1. Configure Laravel:

In config/app.php configuration file:

'log' => 'errorlog'

Read more about Laravel log configuration: http://laravel.com/docs/5.1/errors#configuration

2. Configure webserver (in my case Nginx):

error_log    /var/log/nginx/<project_name>-error.log;
like image 136
Limon Monte Avatar answered Oct 16 '22 15:10

Limon Monte


For those who don't want to use errorlog and just really want to replace the file to log to, you can do this:

\Log::useFiles(env('APP_LOG_FILE'), config('app.log_level', 'debug'));
$handlers = \Log::getMonolog()->getHandlers();
$handler = array_shift($handlers);
$handler->setBubble(false);

on App\Providers\AppServiceProvider.php or any Provider for that matter. This will log to the value of APP_LOG_FILE instead of the default laravel.log. Set bubbling to true and the application will log on both files.

like image 34
krain143 Avatar answered Oct 16 '22 15:10

krain143