如何使用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错误显示,并检查是否是其他原因导致了该问题。