[Magento 2 定制化开发] 之五:Magento 的错误日志查看

文章目录

    新安装的 Magento 最新 2.4.7-p1 版本,发现在管理后台无法添加商品。即,无法保存,界面上也没有任何的提示信息。于是只能看日志了。

    在 Nginx 中没有任何的有价值的日志,只有一个 edit 的 302 跳转记录。

    Magento 的日志存储在哪里

    在 magento 安装根目录下的 var/log/ 目录下。例如,假设 magento 安装在

    /var/www/html/magento/
    

    下,那么对应的日志目录就在

    /var/www/html/magento/var/log/
    

    有哪些日志

    共四个日志文件。

    # ls var/log/
    commerce-data-export.log  debug.log  exception.log  system.log
    

    system.log debug.log exception.log 的区别

    system.log:

    • 这个日志文件记录了 Magento 系统中的一般操作和事件。
    • 它包含了 Magento 应用程序中发生的各种操作和事件的信息,如页面加载、订单处理、产品更新等。
    • 这些信息可以帮助您了解 Magento 系统的运行情况和诊断潜在的问题。

    在开发自定义组件时,用到的 logger->info 就是记录到了 system.log 中:

    use Psr\Log\LoggerInterface;
    
        public function __construct(
            LoggerInterface $logger,
            ImportProcessor $importProcessor
        ) {
            $this->logger = $logger;
            $this->importProcessor = $importProcessor;
        }
    
    $this->logger->info('CSV Import cron job started');
    

    debug.log:

    • 这个日志文件记录了 Magento 的调试信息。
    • 包含了更详细的信息, 如变量值、函数调用、SQL 查询等, 可以帮助诊断代码中的问题。
    • 这个日志文件通常只在开发或测试环境中使用,因为它会记录大量的信息,可能会影响生产环境的性能。

    exception.log:

    • 这个日志文件专门记录 Magento 发生的异常和错误。
    • 可以直观地看到异常错误日志,特别是在生产环境中出现的错误。排除其他信息的干扰。
    • 但是这里看不到资源文件找不到的日志,而 system.log 则包含这些信息

    例如,system.log 中的日志

    [2024-06-18T21:07:30] main.ERROR: elasticsearch8 search engine doesn't exist. Falling back to opensearch [] []
    [2024-06-18T21:07:30] main.ERROR: Could not ping search engine: No alive nodes found in your cluster [] []
    [2024-06-18T21:07:30] main.CRITICAL: Exception message: The stock item was unable to be saved. Please try again.
    

    相对 exception.log 逻辑性更好一些。至少能看到存储失败的提示。

    而且可以看到 js 等资源文件的错误

    [2024-06-18T19:27:04] main.CRITICAL: Unable to resolve the source file for 'adminhtml/Magento/backend/en_US/underscore-umd.js.map' [] []
    [2024-06-18T19:27:11] main.ERROR: Unable to resolve the source file for 'adminhtml/Magento/backend/en_US/jquery/uppy/dist/uppy.min.js.map' [] []
    

    其他日志

    至于安装日志,计划任务日志,可以参考 magento 官方文档的说明:

    https://experienceleague.adobe.com/en/docs/commerce-cloud-service/user-guide/develop/test/log-locations

    继续阅读 🌳

    Magento 2 主题定制化开发系列教程

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式