使用php写入日志文件

时间:2015-01-14 21:39:33

标签: php fopen fwrite fclose

我首先对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一起工作 但我想将每个用户添加到一个新行。

如果有任何聪明的大脑会帮助我,我会很感激它。

问候。

编辑: @Jay 这是我尝试应用它(在第一行打开PHP) 编辑:删除'标记'来自代码的复制/粘贴错误。

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);

1 个答案:

答案 0 :(得分:0)

为什么不使用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