Laravel 5 - change default log location, move log

2019-04-05 14:08发布

问题:

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

回答1:

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;


回答2:

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.