如何使用MAMP 5.1启用通用PHP日志和apache请求日志

如何使用MAMP 5.1启用通用PHP日志和apache请求日志,php,mamp-pro,Php,Mamp Pro,我有一个记录消息的函数 function messageError($logDataJson, $file = null){ $logDataJson = is_string($logDataJson) ? $logDataJson : json_encode($logDataJson); $logDataJson .= PHP_EOL; $fe = fopen('php://stderr', 'w'); fwrite($fe, $file . $logDataJson ); } 当我运行me

我有一个记录消息的函数

function messageError($logDataJson, $file = null){
$logDataJson = is_string($logDataJson) ? $logDataJson : json_encode($logDataJson);
$logDataJson .= PHP_EOL;
$fe = fopen('php://stderr', 'w');
fwrite($fe, $file . $logDataJson );
}

当我运行
messageError(['shop'=>“1”])我看到日志消息
{“shop”:“1”}

但是当我通过http请求运行脚本时,我在
/Applications/MAMP/logs/php_error.log
文件中没有看到消息

在我的
php.ini中它说
; 将错误记录到日志文件(特定于服务器的日志、stderr或错误日志(下面))
; 如上所述,强烈建议您使用错误日志来代替
; 在生产网站上显示时出错。
log\u errors=On

我想要的是从
messageError(['shop'=>“1”])输出消息
/Applications/MAMP/logs/php_error.log
文件并输出
messageLoger(['shop'=>“1”])
/Applications/MAMP/logs/php.log

function messageLoger($logDataJson, $file = null){
$logDataJson = is_string($logDataJson) ? $logDataJson : json_encode($logDataJson);
$logDataJson .= PHP_EOL;
$fe = fopen('php://stdout', 'w');
fwrite($fe, $file . $logDataJson );
}


感谢您的帮助,我们将不胜感激php://output
允许直接访问PHP进程的相应输出流。要写入日志文件,请使用
php://stderr

或者,您可以使用
错误日志
功能

请在此处阅读更多信息:

错误日志函数:


例如:

function log(...$vars): void 
{
     foreach($vars as $var) {
         error_log(sprintf('[LOG][%s] : %s', date('F j, Y, g:i a'), json_encode($var)));
     }
}

log('Hello');
log('a', 'b', 'c');
log([1,2,3]);

更新:

因为您已经在使用
php://stderr
,检查您的php.ini文件,并确保将
错误日志
设置为日志文件

例如:

错误\u log=/path/to/apache/php/log.txt

如果要将错误记录到系统日志或Windows Server事件日志,请使用
syslog

例如:

错误\u log=syslog

php://output
允许直接访问PHP进程的相应输出流。要写入日志文件,请使用
php://stderr

或者,您可以使用
错误日志
功能

请在此处阅读更多信息:

错误日志函数:


例如:

function log(...$vars): void 
{
     foreach($vars as $var) {
         error_log(sprintf('[LOG][%s] : %s', date('F j, Y, g:i a'), json_encode($var)));
     }
}

log('Hello');
log('a', 'b', 'c');
log([1,2,3]);

更新:

因为您已经在使用
php://stderr
,检查您的php.ini文件,并确保将
错误日志
设置为日志文件

例如:

错误\u log=/path/to/apache/php/log.txt

如果要将错误记录到系统日志或Windows Server事件日志,请使用
syslog

例如:

错误\u log=syslog

启用
错误报告(1)
并使用
错误日志()。这应该可以解决您的问题。

启用
错误报告(1)
并使用
错误日志()。这应该可以解决您的问题。

谢谢将我的问题
messageError
更新给用户
php://stderr
这是一个输入错误,这正是我在该函数中使用的,并且仍然没有写入
/Applications/MAMP/logs/php\u error.log
我已经更新了我的答案,希望能有所帮助。如果你仍然有同样的问题,打开所有php错误显示,检查是否是其他原因导致了问题。感谢向用户更新了我的问题
messageError
php://stderr
这是一个输入错误,这正是我在该函数中使用的,并且仍然没有写入
/Applications/MAMP/logs/php\u error.log
我已经更新了我的答案,希望能有所帮助。如果仍然存在相同的问题,请打开所有php错误显示,并检查是否是其他原因导致了该问题。