Magento2 定时任务日志
cron.log
cron.log 由 Magento 内部 cron 任务调度写入
vendor/magento/module-cron/etc/di.xml
virtualType name="Magento\Cron\Model\VirtualLoggerHandler" type="Magento\Framework\Logger\Handler\Base">
<arguments>
<argument name="fileName" xsi:type="string">/var/log/cron.log</argument>
</arguments>
</virtualType>
含义:
- 定义了一个 虚拟类型(
virtualType
),名字叫Magento\Cron\Model\VirtualLoggerHandler
。 - 它基于
Magento\Framework\Logger\Handler\Base
。 - 它的参数里指定了
fileName = /var/log/cron.log
。
✅ 作用:
当 Magento 的 Cron 模块 调用 logger($this->logger->info()
/ $this->logger->error()
)时,就会写入 var/log/cron.log
。
这就是 Magento 自己的 cron 执行日志。
magento.cron.log
<type name="Magento\Framework\Crontab\TasksProviderInterface">
<arguments>
<argument name="tasks" xsi:type="array">
<item name="cronMagento" xsi:type="array">
<item name="command" xsi:type="string">{magentoRoot}bin/magento cron:run >> {magentoLog}magento.cron.log 2>&1</item>
<item name="optional" xsi:type="boolean">false</item>
</item>
</argument>
</arguments>
</type>
含义:
Magento\Framework\Crontab\TasksProviderInterface
定义了 系统级 cron job(操作系统 crontab 中实际要执行的命令)。- 这里给它配置了一个任务
cronMagento
。 - 它的 command 是:
{magentoRoot}bin/magento cron:run >> {magentoLog}magento.cron.log 2>&1
{magentoRoot}
会替换为 Magento 安装目录。{magentoLog}
会替换为var/log/
。
✅ 作用:
这是 Magento 自动生成的 系统 crontab 条目。执行结果(stdout + stderr)会重定向到 var/log/magento.cron.log
。
这部分是 系统 cron 的命令执行日志,不是 Magento 内部 logger 写的。