嗨伙计们:我使用error_log
进行日志记录,但我意识到必须有一种更惯用的方式来记录应用程序进度。有info_log
吗?或同等的?
答案 0 :(得分:20)
您可以使用error_log
附加到指定文件。
error_log($myMessage, 3, 'my/file/path/log.txt');
请注意,您需要使用3(消息类型)才能附加到给定文件。
您可以在脚本的早期创建一个函数来包装此功能:
function log_message($message) {
error_log($message, 3, 'my/file/path/log.txt');
}
答案 1 :(得分:2)
等效的是syslog(),带有LOG_INFO
常量:
syslog(LOG_INFO, 'Message');
如果您要使用文件(因为没有日志轮换,并且由于并发而失败,则不是一个好主意),您可以执行以下操作:
file_put_contents($filename, 'INFO Message', FILE_APPEND);
答案 2 :(得分:0)
我建议您使用Monolog: https://github.com/Seldaek/monolog
您可以通过作曲家添加依赖项:
composer require monolog/monolog
然后,您可以将名为your-app-name
的应用的文件流日志初始化为文件path/to/your.log
,如下所示:
<?php
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// create a log channel
$log = new Logger('your-app-name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
Monolog非常强大,您可以实现许多类型的处理程序,格式化程序和处理器。值得一看: https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md
最后像这样称呼它:
// add records to the log
$log->warning('Foo');
$log->error('Bar');
为了使其具有全局性,建议您将其添加到依赖项注入器(如果有的话),或者将其用于静态调用。
如果您需要更多详细信息,请告诉我。