When you have deployed your Laravel application across multiple servers, for example when running multiple workers, you can run into a situation where you need to quickly tail the log to see what is going on.
Of course you could (and should) use a log aggregation service to handle this for you, but if you just quickly need a glance at what is happening, Laravel Envoy can help you.
You can define a task in your Envoy.php
file that looks like the one below. Note that this one contains the current date, if you have the single
log channel instead of daily
, you can just use laravel.log
.
The || true
at the end of the statement, is to ensure no error is thrown if the log file does not exist.
$servers = [ 'forge@server1.example.com', 'forge@server2.example.com' ]; @task('log', ['on' => $servers, 'parallel' => true]) tail -f /home/forge/example.com/storage/logs/laravel-{{ date('Y-m-d') }}.log || true @endtask
Which you can then run using:
envoy run log
Envoy will then SSH into the different servers for you in parallel and start tailing the log. With a different colour output for each server.