Laravel gửi lỗi người dùng đến Slack

6th Jan 2023
Chỉ cần như vậy là bạn có thể biết được đang lỗi ở đâu và nhanh chóng sửa rồi đúng không.
Table of contents

Trong thực tế khi bạn đưa sản phẩm của mình chạy production thì chúng ta sẽ tắt debug đi bảo mật. Vì vậy khi báo lỗi chỉ trả về 500. Vì vậy mà bạn khó có thể phán đoán được là lỗi gì. Cũng như user phải báo lại cho bạn. Hôm nay mình sẽ hướng dẩn cho các bạn 1 giải giáp mà mình đang làm để có thể nhận thông báo lỗi trước khi user báo về thông qua phầm mềm Slack.

Trong thực tế khi bạn đưa sản phẩm của mình chạy production thì chúng ta sẽ tắt debug đi bảo mật. Vì vậy khi báo lỗi chỉ trả về 500. Vì vậy mà bạn khó có thể phán đoán được là lỗi gì. Cũng như user phải báo lại cho bạn. Hôm nay mình sẽ hướng dẩn cho các bạn 1 giải giáp mà mình đang làm để có thể nhận thông báo lỗi trước khi user báo về thông qua phầm mềm Slack.

Ban đầu mình thực hiện bằng các gửi qua email nhưng có một số lỗi user spam rất nhiều lần gây ra báo mail hàng loạt nói chung là rất khó chịu. Vì vậy học hỏi những người trình độ cao hơn thì mình gửi qua Slack cho đơn giản mỗi khi có lỗi thì bạn sẽ được báo giống như hình sau:

huong-dan-botble-cms-slack-11-min

Chỉ cần như vậy là bạn có thể biết được đang lỗi ở đâu và nhanh chóng sửa rồi đúng không.

Vậy cách để thực hiện như sau: 

Đầu tiền các bạn vào app →  Exceptions → Handler.php và mở file này lên chúng ta sẽ chỉnh sửa ở đây và thềm function sau: 

    ở phần $user nếu các bạn không cần lấy tên thì có thể bỏ phần này đi nhé

public function report(Throwable $exception)
    {
       if ($this->shouldReport($exception) ) {
           auth()->check() ? $user = auth()->user()->name : $user = 'Không có User';
           Log::channel('slack')->critical($user . "\n" . URL::full() . "\n" . $exception->getFile() . ':' . $exception->getLine() . "\n" . $exception->getMessage());
       }
    
       return parent::report($exception);
    }

Tiếp theo các bạn có thể đọc bài sau để tạo cho mình một App trên Slack : Hướng dẫn gửi thông báo lỗi đến Slack ở Botble CMS

Sau đó bạn thêm vào .env dòng sau

LOG_SLACK_WEBHOOK_URL: Thì các dán đường dẫn ở Webhook  trong API lấy được ở bài viết trên vào    

LOG_SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Vậy là xong ! từ giờ các bạn có thể nhận được các thông báo lỗi từ người dùng đến chúng ta

Bạn thấy bài viết này như thế nào?
1 reaction

Add new comment

Image CAPTCHA
Enter the characters shown in the image.

Related Articles

Mỗi kết nối cơ sở dữ liệu được định nghĩa trong một mảng, với tên kết nối là khóa của mảng

Eager Loading là một kỹ thuật tối ưu hóa truy vấn cơ sở dữ liệu trong Laravel, giúp tăng tốc độ truy vấn và giảm số lượng truy vấn cần thiết để lấy dữ liệu liên quan đến một bản ghi.

Để sử dụng Eager Loading với điều kiện trong Laravel, bạn có thể sử dụng phương thức whereHas hoặc orWhereHas trong Eloquent Builder.

E hiểu đơn giản vầy nha. auth() hay Auth trong laravel là những function global hay class, nó cũng chỉ là 1 thôi

Xin chào các bạn, tuần này mình sẽ viết một bài về cách xử lý Real Time(thời gian thực) với Laravel và Pusher