Reputation: 54439
How can I change default log file location <project-name>/storage/logs/laravel.log
to something like /var/logs/<project-name>/laravel.log
?
Upvotes: 14
Views: 26332
Reputation: 41
For anyone still coming across this post in hopes of changing their log file location, I believe this is now easier in newer versions of Laravel. I am currently using 8.x
In your /config/logging.php
you can define the path
for your single and daily logs. Just update whichever one your are looking to change. Just make sure you also include the name of the log file, not just the path to where you'd like it saved.
'single' => [
'driver' => 'single',
'path' => "/your/desired/log/path/file.log", // edit here
'level' => env('LOG_LEVEL', 'debug'),
],
'daily' => [
'driver' => 'daily',
'path' => "/your/desired/log/path/file.log", // edit here
'level' => env('LOG_LEVEL', 'debug'),
'days' => 14,
]
Upvotes: 2
Reputation: 855
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.
Upvotes: 6
Reputation: 54439
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;
Upvotes: 10