在PHP中,crontab是一个用于设置周期性被执行的任务的工具
在PHP脚本中,你可以使用内置的error_log()
函数将错误信息记录到日志文件中。这样,当任务执行失败时,你可以检查日志文件以获取有关错误的详细信息。例如:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', '/path/to/your/error.log');
// Your PHP code here
?>
当你在crontab中运行PHP脚本时,可以将错误输出到标准错误流(stderr),这样你可以捕获它并将其重定向到日志文件。例如,你可以在crontab中设置以下命令:
* * * * * /usr/bin/php /path/to/your/script.php 2>> /path/to/your/error.log
这将把错误信息发送到error.log
文件。
有一些第三方库可以帮助你更好地处理错误,例如Monolog(https://github.com/Seldaek/monolog)。这个库允许你将错误记录到多个目标,如文件、数据库或电子邮件。要使用Monolog,首先安装它:
composer require monolog/monolog
然后在你的PHP脚本中引入并使用它:
<?php
require_once 'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = new Logger('my_cronjob');
$log->pushHandler(new StreamHandler('/path/to/your/error.log', Logger::ERROR));
// Your PHP code here
$log->addError('An error occurred while executing the cronjob.');
?>
这样,当你的脚本发生错误时,Monolog会将错误信息记录到指定的日志文件中。