通过 cron 运行 php 脚本,如何记录任何输出?

问题描述 投票:0回答:2

大家早上好,

我有一个 php 脚本,我一直在测试它,当我从命令行调用它时,它似乎运行良好。

我现在想通过 cron 自动化它,我怎样才能将我放入文件中的输出作为检查点写入到日志文件中?

例如,我在脚本中有一些简单的 echo 命令,我希望输出出现在现有日志文件中(以便它自动旋转等)

谢谢,

格雷格

php logging cron
2个回答
15
投票

要运行的 Cron 命令:

/path/to/php -f /path/to/script.php >> /path/to/logfile.txt &2>1

请注意,所有路径都必须是绝对路径,并且为了查看 PHP 错误,必须启用它们(即 display_errors=on)。


1
投票

尝试这样的事情:

<?php
function logToFile($filename, $msg)
{ 
    $fd = fopen($filename, "a");
    $str = "[" . date("Y/m/d h:i:s", mktime()) . "] " . $msg;
    fwrite($fd, $str . "\n");
    fclose($fd);
}

function logToMail($msg, $address)
{ 
    $str = "[" . date("Y/m/d h:i:s", mktime()) . "] " . $msg;   
    mail($address, "Log message", $str);
}

function logToDB($msg, $type)
{ 
    // open connection to database
    $connection = mysql_connect("localhost", "joe", "pass") or die ("Unable to connect!");
    mysql_select_db("logdb") or die ("Unable to select database!");

    // formulate and execute query
    $query = "INSERT INTO log (date, type, msg) VALUES(NOW(), '$type', '$msg')";
    mysql_query($query) or die ("Error in query: $query. " .mysql_error());

    // close connection
    mysql_close($connection);
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.