信息日志的PHP error_log的等价物?

时间:2011-10-04 23:57:57

标签: php logging

嗨伙计们:我使用error_log进行日志记录,但我意识到必须有一种更惯用的方式来记录应用程序进度。有info_log吗?或同等的?

3 个答案:

答案 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');

为了使其具有全局性,建议您将其添加到依赖项注入器(如果有的话),或者将其用于静态调用。

如果您需要更多详细信息,请告诉我。