Làm cách nào để đặt nhật ký Laravel?
Ví dụ này tập trung vào tên tệp nhật ký tùy chỉnh của laravel. Bài viết này đi chi tiết về cách tạo tệp nhật ký tùy chỉnh trong laravel. Bài viết này sẽ cung cấp cho bạn ví dụ đơn giản về tệp nhật ký tùy chỉnh của laravel. đó là ví dụ đơn giản về tạo tệp nhật ký tùy chỉnh trong laravel. Thực hiện theo bước hướng dẫn dưới đây về cách tạo tệp nhật ký tùy chỉnh phiên bản laravel 6, laravel 7, laravel 8 và laravel 9 Show
Laravel theo mặc định cung cấp lưu trữ/log/laravel. vị trí tệp nhật ký nơi nó sẽ hiển thị tệp nhật ký. nhưng đôi khi bạn có thể yêu cầu tạo tệp nhật ký với tác vụ cụ thể. ví dụ: nếu bạn đang làm việc với tác vụ thanh toán và bạn cần tất cả các tệp nhật ký riêng để ghi nhật ký thanh toán, để bạn có thể dễ dàng tìm ra giải pháp ở đây, tôi sẽ cung cấp cho bạn một ví dụ rất đơn giản, vì vậy hãy xem cách thêm kênh tùy chỉnh với vị trí tệp nhật ký mới. thêm khóa mới "itsolution" trên mảng "kênh" Laravel, một framework phổ biến để xây dựng các dự án PHP, có một hệ thống ghi nhật ký mạnh mẽ cho phép bạn gửi thông điệp tường trình tới các tệp, nhật ký hệ thống và nhiều đích đến khác. Đăng nhập Laravel dựa trên kênh và mỗi kênh xác định một cách viết thông điệp tường trình cụ thể. Ví dụ: kênh 6 ghi tệp nhật ký vào một tệp nhật ký duy nhất, trong khi kênh 7 gửi thông báo nhật ký tới SlackLaravel logging được tạo trên Monolog, đây là một thư viện ghi nhật ký mạnh mẽ cho các dự án PHP. Chúng tôi đã trình bày chuyên sâu về Monolog trong bài viết này, vì vậy chúng tôi sẽ chủ yếu tập trung vào các phần cụ thể của Laravel tại đây. Đây là thông tin chi tiết về những gì sẽ được thảo luận trong bài viết này
điều kiện tiên quyếtBạn cần cài đặt phiên bản PHP và Composer mới nhất trên máy tính của mình. Bạn cũng nên tạo một dự án Laravel mới để có thể kiểm tra các đoạn mã trong bài viết này. Bạn có thể tham khảo Laravel's để biết chi tiết về cách tạo dự án mới trên máy của mình Khám phá tệp cấu hình ghi nhật kýCác dự án Laravel bao gồm một thư mục 8 chứa một số tệp cấu hình được sử dụng để tùy chỉnh các khía cạnh khác nhau của dự án, chẳng hạn như thiết lập cơ sở dữ liệu, bộ nhớ đệm, quản lý phiên, v.v. Ngoài ra, các tùy chọn cấu hình liên quan đến ghi nhật ký cũng có trong thư mục này trong tệp 9. Hãy tiếp tục và mở tệp này trong trình chỉnh sửa của bạn để kiểm tra nội dung của nó
Lưu ý cách ba trình xử lý Monolog được nhập ở đầu tệp. Điều này xác nhận những gì chúng tôi đã giải thích trước đó về việc ghi nhật ký Laravel dựa trên Monolog. Bên dưới phần nhập, bạn có thể thấy ba tùy chọn riêng biệt trong mảng được tệp cấu hình trả về Tùy chọn 0 chỉ định kênh mặc định để viết tất cả các thông điệp tường trình do Laravel tạo ra. Giá trị được cung cấp cho tùy chọn này phải khớp với kênh được xác định bởi mảng 1. Trong đoạn mã trên, giá trị của biến môi trường 2 (được xác định trong tệp 3 của bạn) sẽ được sử dụng theo mặc định nếu nó tồn tại. Nếu không, nó sẽ quay trở lại kênh 4. Nếu bạn kiểm tra tệp 3 ở thư mục gốc của dự án, bạn sẽ nhận thấy rằng biến 2 cũng được đặt thành 4 theo mặc định
Tùy chọn 8 cho phép bạn kiểm soát nơi đặt các cảnh báo không dùng nữa từ PHP, Laravel và các thư viện bên thứ ba khác. Điều này sử dụng biến môi trường 9 (được đặt thành 60 theo mặc định) có nghĩa là các cảnh báo không dùng nữa sẽ bị bỏ qua. Ghi lại các thông báo như vậy rất hữu ích khi chuẩn bị nâng cấp phiên bản lớn, vì vậy bạn nên đặt biến này thành kênh hợp lệ. Bạn cũng có thể xác định một kênh 8 đặc biệt cho mục đích này và nó sẽ luôn được sử dụng để ghi nhật ký những lần không dùng nữa bất kể giá trị của khóa 8 cấp cao nhất là gì
Cuối cùng, tùy chọn 1 là phần quan trọng nhất của tệp vì đây là nơi xác định và định cấu hình tất cả các kênh ghi nhật ký. Một ví dụ được hiển thị trong đoạn mã trước ở trên. Chúng tôi đã xác định một kênh có tên là 8 sử dụng 6. Trình điều khiển này xác định cách các thông báo nhật ký được gửi đến kênh tương ứng được ghi lại. Chẳng hạn, trình điều khiển 6 ghi tất cả các thông báo nhật ký vào một tệp cục bộ như được chỉ định bởi tùy chọn 67, trong trường hợp này là 68. Nếu tệp được chỉ định không tồn tại, Laravel sẽ tự động tạo tệp đó 6Một tùy chọn khác có thể định cấu hình trên các kênh là 69 (được đánh dấu ở trên) và tùy chọn này chỉ định mức nhật ký tối thiểu của kênh. Cấp độ nhật ký là một cách để chúng tôi phân loại các thông báo khác nhau dựa trên mức độ khẩn cấp của chúng và tùy chọn 69 xác định cấp độ nhật ký tối thiểu mà kênh phải ghi lại thông báo. Đối với kênh 6, tùy chọn này được xác định bởi giá trị của biến môi trường 02 (được đặt thành 03 theo mặc định) và giảm xuống thành 03 nếu biến 02 không có trong môi trườngHiểu trình điều khiển kênhTrong phần này, chúng ta sẽ xem xét kỹ hơn về channel driver trong Laravel và cách sử dụng chúng. Chúng ta đã thấy trình điều khiển 6, trình điều khiển này ghi các thông báo vào một tệp duy nhất trên đĩa cục bộ. Trình điều khiển 07 tương tự như 6 vì nó cũng ghi vào một tệp, nhưng nó quay vòng hàng ngày và tự động xóa nhật ký cũ. Nó sử dụng 09 của Monolog dưới mui xe. Đây là cách nó thường được cấu hình 0Trình điều khiển 07 này sẽ tạo một tệp nhật ký mỗi ngày ở định dạng 01. Tùy chọn 02 chỉ định thời gian lưu giữ từng tệp nhật ký, nghĩa là các tệp cũ hơn 14 ngày sẽ bị xóa. Nói chung, tốt hơn là nên chọn trình điều khiển 07 thay vì 6 để các tệp nhật ký riêng lẻ không phát triển quá lớn và trở nên khó sử dụng. Một giải pháp khác là tiếp tục sử dụng trình điều khiển 6 và thực hiện xoay vòng tệp nhật ký bằng tiện ích tiêu chuẩn như logrotate 0Trình điều khiển 06 và 07 hoạt động rất giống nhau. Cả hai đều ghi vào nhật ký hệ thống, ngoại trừ trình điều khiển 06 gọi hàm syslog() của PHP và trình điều khiển 07 gọi hàm error_log(). Bạn có thể tìm hiểu thêm về cách các chức năng này hoạt động trong bài viết của chúng tôi về đăng nhập trong PHPTrình điều khiển 4 cho phép bạn ghi một tin nhắn vào nhiều kênh cùng một lúc bằng cách sử dụng tùy chọn 1 của nó. Ví dụ 2Tùy chọn 1 được đánh dấu ở trên liên kết các kênh 23, 24 và 25 với nhau để bạn có thể đăng nhập đồng thời vào cả ba kênh bằng cách gọi kênh 4Bạn có thể kiểm soát thêm cách hoạt động của tính năng ghi nhật ký trong ứng dụng của mình bằng cách sử dụng trình điều khiển hai kênh sau đây. trình điều khiển 27 để gọi trực tiếp bất kỳ trình xử lý Monolog nào và trình điều khiển 28 để tạo trình ghi nhật ký tùy chỉnh bằng cách sử dụng các nhà máyVì Laravel logging dựa trên thư viện Monolog nên chúng ta có thể truy cập bất kỳ trình xử lý nào của nó bằng trình điều khiển 27 như hình bên dưới 1Trong phần được đánh dấu, chúng tôi có tùy chọn 10 chỉ định trình xử lý Monolog mà chúng tôi sẽ sử dụng là 11 trong ví dụ này. Trình xử lý này cho phép chúng tôi chỉ định các mức nhật ký cụ thể cho kênh, thay vì mức tối thiểu sao cho chỉ các mục khớp với các mức đã chỉ định mới được ghi vào kênhTiếp theo, tùy chọn 12 là nơi chúng tôi chuyển một số thông tin được yêu cầu bởi trình xử lý Monolog đã chọn. Trong ví dụ này, tùy chọn 10 thứ hai được sử dụng để chỉ định rằng 14 nên được sử dụng để ghi nhật ký các tin nhắn được gửi tới kênh 15 tới một tệp cục bộTùy chọn 16 xác định một hoặc nhiều cấp độ nhật ký sẽ được ghi đến đích được xác định trong kênh. Trong trường hợp này, chỉ các mục cấp độ 17 sẽ được ghi vào tệp 18. Bạn có thể đọc thêm về trình xử lý Monolog trong bài viết nàyKhi bạn cần mức tùy chỉnh cao hơn nữa cho dự án của mình, bạn có thể tạo một kênh tùy chỉnh hoàn toàn bằng trình điều khiển 28 2Sau đó, chúng tôi có thể tạo tệp 20 nơi chúng tôi có thể tạo kênh ghi nhật ký được tùy chỉnh hoàn toàn bằng Monolog 4ứng dụng/Ghi nhật ký/TạoCustomLogger. php Bạn cần có thêm kiến thức nâng cao liên quan đến Monolog để đạt được điều này, vì vậy nếu bạn quan tâm, hãy đọc hướng dẫn của chúng tôi về Monolog để tìm hiểu thêm Hiểu các cấp độ nhật ký trong LaravelLaravel cung cấp tám mức độ nghiêm trọng được xác định trong đặc tả RFC 5424. Danh sách dưới đây được sắp xếp theo mức độ nghiêm trọng của chúng, với 21 là nghiêm trọng nhất và 03 là ít nghiêm trọng nhất
Không có tiêu chuẩn về điều kiện nào nên được coi là ________ 724, ________ 726, ________ 728, v.v. Tất cả phụ thuộc vào mục đích của chương trình bạn đang viết. Ví dụ: hãy tưởng tượng một ứng dụng thương mại điện tử nơi người dùng có thể mua các mặt hàng. Bạn có thể ghi lại các đơn đặt hàng thành công bằng cách sử dụng cấp độ 17 và các đơn đặt hàng không thành công do một số API bên ngoài bị lỗi bằng cách sử dụng cấp độ 27Đây là cách sử dụng các mức nhật ký trên trong ứng dụng Laravel 0 1Lưu ý cách cấp nhật ký được bao gồm ngay trước thông báo tường trình ở trên. Điều này giúp bạn hiểu nhanh từng mục bằng cách chú thích mức độ nghiêm trọng của sự kiện để bạn biết nơi cần tập trung nỗ lực của mình. Nếu bạn gửi nhật ký của mình đến dịch vụ quản lý nhật ký, bạn có thể thiết lập giám sát nhật ký dựa trên các cấp độ này, để bạn được cảnh báo kịp thời về các sự kiện đáng chú ý trong ứng dụng của mình 🔭 Bạn muốn tập trung và theo dõi nhật ký Laravel của mình?Truy cập Logtail và bắt đầu nhập nhật ký của bạn sau 5 phút Tạo ngăn xếp nhật kýTrong phần này, chúng tôi sẽ trình bày cách sử dụng trình điều khiển kênh 4 để tạo hệ thống ghi nhật ký cơ bản cho ứng dụng Laravel. Quay lại tệp 9 và thay thế các cấu hình kênh mặc định bằng các dòng sau 2Chúng tôi đã tạo ba kênh duy nhất, mỗi kênh có mức nhật ký tối thiểu khác nhau và chúng tôi đã kết hợp chúng trong kênh 4 bằng trình điều khiển 4. Nhớ lại rằng tùy chọn 69 xác định mức tối thiểu mà thông báo phải được kênh ghi lại. Vì vậy, trong ví dụ này, nếu chúng ta có một thông báo cấp độ 42, nó sẽ không được ghi lại bởi bất kỳ kênh nào vì 42 ít nghiêm trọng hơn so với 17, 28 và 26. Tuy nhiên, nếu chúng tôi có một thông báo cấp độ 23, nó sẽ được ghi lại bởi cả ba kênhTrong hệ thống ghi nhật ký này, tệp 09 sẽ chứa tất cả các bản ghi nhật ký ngoại trừ các thông báo gỡ lỗi. Tệp 10 sẽ bao gồm tất cả các bản ghi mà bạn nên chú ý đến ( 11 hoặc nghiêm trọng hơn) và tệp 12 sẽ chứa tất cả các vấn đề có khả năng xảy ra cần được giải quyết ngay lập tứcVấn đề với hệ thống này là nó có thể dẫn đến lãng phí tài nguyên lưu trữ do lặp lại nhật ký trong mỗi tệp. Sẽ tốt hơn nếu chúng ta có thể xác định một tập hợp các mức nhật ký có thể chấp nhận được cho mỗi trình xử lý thay vì chỉ mức tối thiểu. Laravel không cung cấp một cách tự nhiên để thiết lập một hệ thống như vậy, nhưng nó có thể đạt được bằng cách sử dụng 11 đã thảo luận trước đó 3Trong ví dụ này, kênh 03 sẽ chỉ ghi lại các tin nhắn 42, kênh 16 sẽ ghi lại các tin nhắn 29 và 28, và 21 sẽ đẩy các tin nhắn 24 và 23 lên kênh Telegram thông qua 22Để thiết lập 22, trước tiên bạn cần tạo bot Telegram thông qua BotFather. Mở liên kết trong ứng dụng khách Telegram và bắt đầu cuộc trò chuyện bằng cách gửi tin nhắn 24. Bạn sẽ nhận được một thông báo với các bước tiếp theo để tạo bot của mìnhLàm theo hướng dẫn để tạo tên người dùng và tên bot mới và bạn sẽ nhận được khóa API sau khi hoàn tất. Bạn có thể sử dụng khóa API này để truy cập bot của mình Tiếp theo, tạo một kênh Telegram công khai và thêm bot vào kênh. Cuối cùng, sử dụng khóa API và tên kênh (có tiền tố 25) để tạo phiên bản mới của 22Lần này, nếu bạn đẩy một tin nhắn cấp 23, nó chỉ nên đi qua kênh 21 4Bạn sẽ nhận được những tin nhắn như thế này trên Telegram Gửi một thông điệp tường trìnhCho đến nay, chúng ta chủ yếu thảo luận về cấu hình ghi nhật ký của Laravel, vì vậy đã đến lúc chúng ta đưa những gì đã học để thực hành vào mã ứng dụng. Đi tới thư mục 29 và mở tệp 30. Chúng tôi sẽ tạo một tuyến đường mới và ghi lại một tin nhắn bất cứ khi nào người dùng truy cập nó. Lưu ý rằng chúng tôi đang sử dụng thiết lập kênh nhật ký 4 từ phần trước 5Tuyến đường. get("/", function () { return view("welcome"); });Tuyến đường. get("/user", function() { Nhật ký. info("Tuyến/người dùng đang được truy cập. "); return "Đây là trang/người dùng. “; Mặt tiền 32 của Laravel đang được sử dụng để ghi thông báo tường trình và phương thức 33 được sử dụng để ghi thông báo mức 17. Để thấy điều này hoạt động, hãy khởi chạy máy chủ phát triển bằng cách chạy lệnh sau trong thiết bị đầu cuốiMở trình duyệt của bạn và truy cập 35; . Quay trở lại thiết bị đầu cuối và kiểm tra nội dung của thư mục 36. Bạn nên quan sát rằng có một tệp 37. Kiểm tra nội dung của tập tin này như sauVì thông báo nhật ký này có cấp độ nhật ký 17, nó sẽ chỉ được ghi bởi kênh 39, vì vậy sẽ không có tệp nào khác chứa mục nhập này do chúng tôi sử dụng 11 trong tệp cấu hìnhBạn có thể thêm một tuyến đường khác bên dưới để mô phỏng tình trạng lỗi trong ứng dụng Mở trình duyệt của bạn và truy cập 41. Vì người dùng 42 không được tìm thấy trong mảng 43, nhật ký lỗi sẽ được ghi vào kênh 44Cũng có thể đăng nhập vào một kênh cụ thể khác với kênh mặc định bằng cách sử dụng phương pháp 45 được hiển thị bên dướiThông báo được đánh dấu này sẽ được ghi trực tiếp vào kênh 39 mà không cần thông qua kênh 4. Một điều cần lưu ý khi sử dụng một kênh cụ thể như thế này là thông báo phải tương ứng với các mức được định cấu hình trên kênh. Nếu bạn cố ghi một thông báo 17 vào 49, thông báo đó sẽ bị bỏ qua vì chỉ các nhật ký 29 và 28 được chấp nhận trên kênhTrong các ví dụ của chúng tôi cho đến nay, chúng tôi chỉ ghi nhật ký các thông báo đơn giản, nhưng thường cần đưa thêm thông tin vào mục nhập nhật ký để cung cấp thêm ngữ cảnh về sự kiện khiến nó được ghi lại. Điều này có thể được thực hiện bằng cách thêm tham số thứ hai vào phương thức cấp nhật ký như thế này Mở trình duyệt của bạn và truy cập 41. Quay trở lại thiết bị đầu cuối và kiểm tra bản ghi mới nhất trong tệp 37 bằng lệnh bên dướiBạn nên quan sát một đối tượng được định dạng JSON ở cuối bản ghi nhật ký như thế này Nếu bạn cần kiểm soát nhiều hơn cách định dạng nhật ký trong Laravel, bạn có thể tùy chỉnh nó thông qua các trình định dạng của Monolog. Quay trở lại 54 và thêm tùy chọn 55 cho kênh 4
Làm cách nào để bật nhật ký trong Laravel?Laravel hỗ trợ các chế độ ghi nhật ký khác nhau như chế độ đơn, hàng ngày, nhật ký hệ thống và nhật ký lỗi. Bạn có thể đặt các chế độ này trong config/app. tệp php . Bạn có thể xem các mục nhật ký được tạo trong storage/logs/laravel.
Làm cách nào để tạo nhật ký Laravel?Làm cách nào để tạo tệp nhật ký tùy chỉnh trong Laravel? . cấu hình/ghi nhật ký. php. . 'kênh' => [. Mã tuyến đường. Tuyến đường. get('create-custom-log', function () { \Log. channel('itsolution')->info('Đây là thử nghiệm cho ItSolutionStuff. com. . lưu trữ/nhật ký/giải pháp của nó. đăng nhập. đọc thêm. Ví dụ về tên chỉ mục tùy chỉnh của Laravel Migration Làm cách nào để ghi vào tệp nhật ký trong Laravel?Để ghi tệp nhật ký vào một vị trí khác, sử dụng phương thức useDailyFiles hoặc useFiles , sau đó nhập thông tin vào tệp nhật ký theo đường dẫn bạn vừa chỉ định. Like so: Log::useDailyFiles(storage_path(). '/logs/name-of-log.
Làm cách nào để lưu trữ dữ liệu tệp nhật ký Laravel vào cơ sở dữ liệu?Sử dụng trình điều khiển rất đơn giản. tạo kênh mới trong cấu hình/ghi nhật ký của bạn. tệp php và bạn đã sẵn sàng. Bây giờ bạn có thể thêm kênh vào trình điều khiển ngăn xếp hoặc đăng nhập rõ ràng vào cơ sở dữ liệu. |