我有一个简单的PHP脚本,它将错误写入错误日志文件,并将部分错误打印到屏幕上。
我首先在Aptana Studio内部的“沙盒”项目中开发它(但实际上,它们只是目录),它工作得非常漂亮。但是,当我将其复制到我的“生产项目”时(再次,它实际上只是Web服务器上的一个不同目录),它不再将消息记录到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
函数显然没有错误。它只是不起作用。
关于下一步该看哪以及其他可能导致这种情况的任何想法?