Logging là một phần quan trọng của mọi quá trình phát triển. Nhật ký cung cấp các insights về các quy trình hệ thống của Magento 2 và là một công cụ tuyệt vời để theo dõi lỗi, các sự kiện quan trọng và nhiều hơn nữa. Để thư viện ghi nhật ký có thể vận hành với Magento 2, nó phải tương thích với các tiêu chuẩn PSR-3. Magento Agency 2 logging ra mắt cùng với giải pháp ghi nhật ký tích hợp dựa trên Thư viện Monolog, và sẽ được phân tích kỹ hơn trong bài viết này của SmartOSC.
Magento 2 logging
Log class chính của Magento 2 là “Magento\Framework\Logger\Monolog” và được định dạng trong “MAGENTO2_ROOT/app/etc/di.xml”.
<preference for=”Psr\Log\LoggerInterface” type=”Magento\Framework\Logger\Monolog”> |
Như đã đề cập trước đây, Monolog là một công cụ ghi nhật ký cho phép người dùng sử dụng một loạt các trình xử lý có lợi cho họ, chẳng hạn như đăng nhập vào tệp và nhật ký hệ thống, gửi thông báo và email, ghi nhật ký hoạt động cơ sở dữ liệu, v.v.
Logger class có 8 cấp độ log kèm phương thức tương ứng cho mỗi cấp độ đó, việc sử dụng các phương thức này phụ thuộc vào loại thông điệp mà người dùng đang sử dụng.
Mỗi phương thức này chấp nhận 2 đối số, đầu tiên là chính thông điệp (chuỗi) và phương thức thứ hai là một mảng tùy chọn (ví dụ: đối tượng Exception).
$this->_logger-> emergency($message, array $context = array()); //saved in var/log/system.log
$this->_logger-> alert($message, array $context = array()) //saved in var/log/system.log
$this->_logger-> critical($message, array $context = array()) //saved in var/log/system.log
$this->_logger-> error($message, array $context = array()) //saved in var/log/system.log
►►►► Please visit our products: Magento POS, BigCommerce POS, Shopify POS, Woocommerce POS, NetSuite POS, Mobile POS, White label POS, Reseller POS, POS System for Retail and Commercetools POS
$this->_logger-> warning($message, array $context = array()) //saved in var/log/system.log
$this->_logger-> notice($message, array $context = array()) //saved in var/log/system.log
$this->_logger-> info($message, array $context = array()) //saved in var/log/system.log$this->_logger-> debug($message, array $context = array()) //saved in var/log/debug.log (does not work in production mode)
Có một phương pháp khác có thể được sử dụng để logging một cái gì đó với mức tùy ý với vai trò tham số đầu tiên.
$this->_logger-> log($level, $message, array $context = array()) |
Tất cả các ngoại lệ, bất kể là mức độ nhật ký nào được sử dụng, đều được lưu trong var/log/exception.log
>>>> Xem thêm: https://www.smartosc.com/insights/Dich-vu-phat-trien-Magento-tron-goi
Sử dụng logger class
Magento 2 sử dụng dependency injection do đó, để sử dụng logger trong class, logger cần được chuyển tới hàm tạo class.
Dưới đây là một ví dụ về cách sử dụng logger trong một class tùy chỉnh để ghi lại một ngoại lệ.
class Example
{
private $logger;
public function __construct(\Psr\Log\LoggerInterface $logger) {
$this->logger = $logger;
}
public function exampleMethod()
{
try {
//do something
} catch (\Exception $e) {
$this->logger->critical(‘Error message’, [‘exception’ => $e]);
}
}
}
Hãy chú ý rằng, chúng ta đang chuyển \Psr\Log\LoggerInterface trong hàm tạo thường được ưu tiên đối với LoggerInterface được thiết lập thành Monolog class trong di.xml, như đã đề cập ở phần mở đầu.
Trong một vài trường hợp, việc chuyển các logger sang các hàm tạo như các class “Magento\Framework\View\Element\Template” và “Magento\Framework\Model\AbstractModel”. Những class này đã có phần $_logger nên nếu bạn mở rộng các class này, thì một trong những logger class đã sẵn có.
=>>>> Tham khảo bài viết: https://www.smartosc.com/insights/Huong-dan-chon-lua-cong-ty-Magento-uy-tin
Gỡ lỗi Magento 2 logging
Theo mặc định, Magento chỉ ghi vào nhật ký gỡ lỗi ở chế độ mặc định và phát triển, nhưng không ở chế độ sản xuất.
Để thay đổi giá trị mặc định trong chế độ mặc định và chế độ phát triển thì các lệnh sau có thể được sử dụng:
1. bin/magento setup:config:set –enable-debug-logging=true|false
2. bin/magento cache:flush
>>>> Xem thêm: https://www.smartosc.com/insights/Diem-mat-top-cac-cong-ty-Magento-tai-Vietnam
Cơ sở dữ liệu Magento 2 logging
Một chức năng tuyệt vời khác của Magento 2 là ghi nhật ký hoạt động của cơ sở dữ liệu. Theo mặc định, nhật ký cơ sở dữ liệu được lưu trong var/debug/db.log. Việc sử dụng ghi nhật ký cơ sở dữ liệu rất được khuyến khích vì nó cho phép chúng ta theo dõi tất cả các truy vấn cơ sở dữ liệu và có thể giúp chúng ta tìm ra các yếu tố cản trở hiệu suất.
Sử dụng lệnh sau để bật / tắt ghi nhật ký cơ sở dữ liệu:
1. bin/magento dev:query-log:enable|disable
2. bin/magento cache:flush
Ghi nhật ký
Kể từ phiên bản Magento 2.3.1, việc ghi nhật ký được mở rộng và hiện được ghi tại in var/log/cron.log thay vì var/log/system.log
Trên đây là những điểm cơ bản của Magento 2 Logging. Mặc dù Magento 2 sử dụng trình ghi nhật ký Monolog theo mặc định, các giải pháp ghi nhật ký khác có thể được sử dụng bằng cách đặt tùy chọn cho LoggerInterface miễn là nó tuân thủ tiêu chuẩn PSR-3.
Ngoài ra còn có nhiều chức năng khác khi sử dụng logging như tạo trình xử lý tùy chỉnh cho tệp nhật ký tùy chỉnh, gửi email với dữ liệu nhật ký, gửi bản ghi nhật ký đến tài khoản Slack, v.v.
Nguồn bài viết: https://www.smartosc.com/
►►►► Our related services: Bigcommerce BackOrder, Bigcommerce automation, BigCommerce Integration, Automation Template, IT jobs in Vietnam, tuyển dụng fresher, tuyển dụng IT, tìm việc IT, việc làm IT