我有一个简单的 PHP 脚本,它将错误写入错误日志文件,并将部分错误打印到屏幕上。
我首先在 Aptana Studio 内的“沙盒”项目中开发了它(但实际上,它们只是目录),在那里它运行良好。但是,当我将它复制到我的“生产项目”(同样,它实际上只是网络服务器上的另一个目录)时,它不再将消息记录到errorlog.log
文件中。所有权限都是相同的,实际上我使脚本可执行(它不在其他目录中),并赋予目录完全权限(chmod 777)。该errorlog.log
文件已经作为一个空文件存在并且是可写的,就像它在沙箱中一样。
这是代码:
<?php
/* logerrors.inc.php - Prints a "formatted" error message which will be displayed
* within a handler (i.e. the notification bar) on the front end and writes
* the error to a text log.
*/
date_default_timezone_set('America/New_York'); // Required to avoid errors.
define("LOG_LOCATION", "errorlog.log"); // The location of the log file
function writeError($error_string, $technical_info_string = ""){
$tech_log_entry = ""; // We should only log techinical information
// if it's provided
if($technical_info_string != ""){
$tech_log_entry = "\n- Technical Info Provided: ". $technical_info_string;
}
// Writes a log entry with full details.
error_log("[ERROR: ".date('Y-m-d H:i:s') . "]\n- Error Displayed: ". $error_string .
$tech_log_entry ."\n\n",
3, LOG_LOCATION);
echo "error: " . $error_string; // Emits the $error_string as output
exit();
}
?>
有趣的是echo
,脚本底部的命令运行良好,因此显然不会在error_log
函数上出错。它只是行不通。
关于下一步看哪里或其他可能导致这种情况的任何想法?