Tail log của Laravel project với spatie laravel tail

Từ phiên bản 5.0 của Laravel, bạn sẽ thấy lệnh php artisan tail đã không còn tồn tại trong bản mặc định của framework

  [Symfony\Component\Console\Exception\CommandNotFoundException]  
  Command "tail" is not defined.

Để sử dụng lại lệnh php artisan tail trong project, bạn có thể sử dụng gói spatie/laravel-tail, trong hướng dẫn ngắn này mình sẽ giới thiệu cách sử dụng package này để tail log của dự án trên các môi trường khác nhau ( local, staging và production).

1. Config

Bạn có thể cài đặt package này thông qua composer:

composer require spatie/laravel-tail  

Sau đó trong file config/app.php:

// config/app.php

'providers' => [  
    ...
    'Spatie\Tail\TailServiceProvider',
    ...
];

Sau đó bạn có thể tail log của project trên máy của bạn.

php artisan tail  

Mặc định, package tail 20 dòng log cuối cùng, bạn có thể thay đổi bằng cách thêm tham số --lines

php artisan tail --lines=50  

2. Thiết lập để tail được project ở nhiều môi trường

Để thiết lập tail được trên nhiều môi trường, trước hết bạn cần publish config của package vào project.

php artisan vendor:publish --provider="Spatie\Tail\TailServiceProvider"  

Câu lệnh trên sẽ tạo ra file config/tail.php có nội dung như phía dưới:

<?php

return [

    'connections' => [

        /*
         * Tên môi trường. Bạn có thể dùng giá trị này trong câu lệnh tail 
         */
        'production' => [

            /*
             * hostname của server chứa log của ứng dụng
             */
            'host'  => '',

            /*
             * username  của tài khoản dùng khi kết nối với server chứa log
             */
            'user' => '',

            /*
             * Đường dẫn tuyệt đối của thư mục chứa log
             */
            'logDirectory' => '',
        ],
    ],
];

Sau khi thiết lập xong thông tin trên, bạn có thể tail log ở môi trường đã config. Ví dụ với môi trường production trong file config ở trên

php artisan tail production  

Sẽ tiện lợi cho bạn khi cần view log của hệ thống đang chạy khi có sự cố xảy ra mà không mất quá nhiều thao tác.