2014-11-25 70 views

回答

3

是,PHP內建了錯誤日誌功能。

PHP將錯誤自動記錄到此文件。

如果你想記錄錯誤,使用功能error_log()

取決於環境的文件位置的變更。

例如

在Ubuntu 12.04,其

var/log/php_errors.log

在XAMPP窗口,

\xampp\php\logs\php_errors.log

在Mac OS,

/var/log/apache2/php_errors.log

+0

我忘了提及我正在使用mac os – 2014-11-25 09:00:20

+0

回答更新,請現在檢查。 – Pupil 2014-11-25 09:01:45

+0

Downvoters,您的downvoting是最受歡迎的。我很高興我的答案需要改進/更正。但是,請發表評論關於我的錯誤。你是我真正的老師。 – Pupil 2016-02-26 06:34:28

11

內置-in webserver默認情況下不會在任何地方登錄,所以你需要提供一個php.ini來定製它。例如,如果你創建了一個名爲與此內容php.ini文件:

error_log = /Users/me/test.log 
date.timezone = UTC 

然後就可以開始PHP的內置Web服務器這樣的:

php -S 127.0.0.1:8080 -c php.ini 

而error_log中()調用將被記錄到您指定的文件。

+0

這很有幫助,但我需要在ini文件中另外添加'log_errors = On'。 – Progrock 2017-11-29 18:46:39

+0

此外,我嘗試在錯誤日誌的php.ini中的相對路徑。當內置的服務器使用-t目錄標誌時,路徑相對於那裏,而不是php.ini。 – Progrock 2017-11-29 18:48:03

1

在macOS上使用PHP內置服務器時,需要在php.ini配置文件(php -i | grep php.ini)中指定error_log

如果用syslog決定(而不是一個日誌文件),例如:

error_log = syslog 

然後轉儲日誌,你可以在Mac OS,例如使用log命令

log stream --predicate 'processImagePath contains "php"' 

否則,使用一些特定的文件路徑錯誤日誌(例如/usr/local/var/log/php-error.log)。