使用 php 写入日志文件

Using php to write to a log file

首先我对 php 非常非常非常非常不好,很抱歉这个问题 我有一个应用程序,我想在其中记录一些调试数据 通过我的项目,我向我的网站发出了一个网络请求,将信息存储在 $msg 然后我想将数据写入网站上我​​的 logfile.log。 我最开始用的是fopen fwrite fclose,但是听说file_put_contents会更好 特别是因为我很可能会有几个用户试图同时写入文件。 这是代码:

$msg = $_GET['w'];
$logfile= 'logfile.log';
echo file_put_contents($logfile,$msg, FILE_APPEND | LOCK_EX);

但是你可能猜到代码对我没有任何作用 我让它与 fopen fwrite fclose 一起工作 但我想将每个用户添加到一个新行。

如果有任何聪明的大脑能帮助我,我将不胜感激。

此致。

编辑: @杰伊 这就是我尝试应用它的方式(在第一行打开 php) 编辑:由于 copy/paste 错误,从代码中删除了 'tag'。

error_reporting(E_ALL); ini_set('display_errors', 1)
$msg = $_GET['w'];
$logfile= 'logfile.log';
echo file_put_contents($logfile,$msg, FILE_APPEND | LOCK_EX);

为什么不直接使用 error_log()?将 message_type 设置为 3(第二个参数),消息将写入第三个参数中指定的文件:

$message = $_GET['w'];
$logfile = 'logfile.log';

// Debug: A line for verifying I have the message
echo "Writing message '$message' to logfile<br>";

error_log($message."\n", 3, $logfile);

// Debug: read back the log file to verify thatthe line has been written
readfile($logfile);

请注意附加到邮件的 newline,因为 error_log() 不会为您执行此操作。

另请注意,必须设置权限以允许 Web 服务器写入目标文件。无论使用 error_log() 还是 file_put_contents()

都是如此

PHP参考是here