2013-03-20 59 views
47

我想在执行PHP代码时将消息写入错误日志文件。如何写入PHP中的错误日志文件

我正在尝试使用PHP error_log()函数Docs

但它对我来说工作不正常。

+11

你是什么意思,“它不能正常工作” – 2013-03-20 17:02:40

+5

告诉我们[你有什么尝试](http://www.whathaveyoutried.com)。告诉使用你得到的和你期望发生的事情。 – UnholyRanger 2013-03-20 17:02:52

+0

请显示您的代码,告诉您预期会发生什么,并描述发生了什么。通常,'error_log()'函数可以正常工作,而且你没有说过什么不适合你,所以你的问题不清楚。 – hakre 2013-03-20 17:06:52

回答

84

如果您不想在php.ini文件中更改任何内容,请按照PHP documentation的说法操作。

error_log("Error message\n", 3, "/mypath/php.log"); 

第一个参数是要发送到日志的字符串。第二个参数3表示预期文件目标。第三个参数是日志文件路径。

+1

我只是在做'error_log(“错误信息\ n”) '但是没有任何内容出现在'/ var/log/httpd/error_log'中。 :(任何想法为什么? – trusktr 2013-06-01 18:16:56

+3

在'php.ini'文件中检查error_log配置设置,该设置将保存写入错误的文件名,例如'error_log“log_file_name”'。 net/manual/en/function.error-log.php – suspectus 2013-06-02 19:17:06

+0

关于此的教程:http://code2real.blogspot.in/2015/06/php-generate-log-messages-and-save-to.html – Pupil 2015-07-16 03:59:50

3

您可以使用普通的文件操作来创建错误日志。 就指这一点,并输入此链接: PHP File Handling

29

,你可以简单地使用:

error_log("your message"); 

默认情况下,该消息将被发送到PHP的系统日志。

+8

如果你使用这种方法,确保错误日志记录已打开,并且您取消注释php.ini中的error_log指令 – 2014-04-24 14:58:21

+4

-1用于提示,在问题提出后一年,OP已经说过他尝试了什么,但是不是为他工作的,而且在嫌疑人已经有了一个更好的答案,在这个答案前一年创建。 – ToolmakerSteve 2014-08-17 18:42:56

+0

@ToolmakerSteve,这也是一个不错的选择 – Pacerier 2015-03-25 15:16:19

6

对于WAMP服务器仅3.0用户:

你必须要在C:\wamp64\bin\php\php[5.*/7.*]\phpForApache.ini

取消注释修改此行:

log_errors = On 
error_log = "c:/wamp/logs/php_error.log" 

检查出你的记录在类似样的路径,因为我有提到这里:

c:/wamp/logs/php_error.log 
+1

还要确保'log_errors = on' – ToolmakerSteve 2016-08-05 19:40:29

9

大家都知道PHP保存错误php_errors.log文件。

但是,该文件包含大量数据。

如果我们想记录我们的应用程序数据,我们需要将它保存到自定义位置。

我们可以在error_log函数中使用两个参数来实现这一点。

http://php.net/manual/en/function.error-log.php

我们可以通过做到这一点:

error_log(print_r($v, TRUE), 3, '/var/tmp/errors.log'); 

其中,

print_r($v, TRUE) :日志$ V(阵列/串/对象)日志文件。 3:将日志消息放入第三个参数中指定的自定义日志文件。

'/var/tmp/errors.log':自定义日志文件(此路径适用于Linux,我们可以根据OS指定其他路径)。

或者,你可以使用file_put_contents()

file_put_contents('/var/tmp/e.log', print_r($v, true), FILE_APPEND); 

其中:

'/var/tmp/errors.log':自定义日志文件(此路径是Linux,我们可以根据OS指定其他)。 print_r($v, TRUE) :将$ v(数组/字符串/对象)记录到日志文件。 FILE_APPEND:常量参数,指定是否附加到文件,如果文件不存在,则会创建新文件。