我怎样才能在 heroku 日志上看到我的回声打印?
How can i see my echo prints on the heroku logs?
我有一个运行良好的免费 PHP heroku webapp。
(发送推送通知)。
当我从 PHP 应用程序中像这样打印时:
echo 'sending push !!!' . PHP_EOL;
当我这样做时,我在 heroku 日志上看不到这些打印件
heroku --tail
知道为什么吗?
PHP 中的回显字符串不会显示在 Heroku 日志中,您需要做的是创建一个单独的日志文件来保存所有日志记录。我不知道您是否使用任何日志记录机制甚至 PHP 框架。
如果您还没有任何日志机制,您可以看看:https://github.com/Seldaek/monolog。它是 PHP 写日志的即插即用模块。
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('debug.log', Logger::WARNING));
// add records to the log
$log->addWarning('Foo');
$log->addError('Bar');
安装后,您可以在 heroku 中设置一个环境变量,将 heroku 分配给日志文件。
heroku config:set LOG_PATH=/set/to/your/log/file
希望这对您有进一步的帮助。
你只需write to stderr
:
file_put_contents("php://stderr", "sending push !!!".PHP_EOL);
或者,如果您使用的是 Monolog:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = new Logger('yourlogger');
$log->pushHandler(new StreamHandler('php://stderr', Logger::DEBUG));
$log->addNotice('sending push !!!');
不要使用特定的日志文件路径,或者 LOG_PATH
,这实际上不会做任何事情。
如果你想将变量记录到 heroku 日志,你可以简单地使用以下命令。
$some_value=2;
file_put_contents("php://stderr", "$some_value\n");
我有一个运行良好的免费 PHP heroku webapp。 (发送推送通知)。
当我从 PHP 应用程序中像这样打印时:
echo 'sending push !!!' . PHP_EOL;
当我这样做时,我在 heroku 日志上看不到这些打印件
heroku --tail
知道为什么吗?
PHP 中的回显字符串不会显示在 Heroku 日志中,您需要做的是创建一个单独的日志文件来保存所有日志记录。我不知道您是否使用任何日志记录机制甚至 PHP 框架。
如果您还没有任何日志机制,您可以看看:https://github.com/Seldaek/monolog。它是 PHP 写日志的即插即用模块。
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('debug.log', Logger::WARNING));
// add records to the log
$log->addWarning('Foo');
$log->addError('Bar');
安装后,您可以在 heroku 中设置一个环境变量,将 heroku 分配给日志文件。
heroku config:set LOG_PATH=/set/to/your/log/file
希望这对您有进一步的帮助。
你只需write to stderr
:
file_put_contents("php://stderr", "sending push !!!".PHP_EOL);
或者,如果您使用的是 Monolog:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = new Logger('yourlogger');
$log->pushHandler(new StreamHandler('php://stderr', Logger::DEBUG));
$log->addNotice('sending push !!!');
不要使用特定的日志文件路径,或者 LOG_PATH
,这实际上不会做任何事情。
如果你想将变量记录到 heroku 日志,你可以简单地使用以下命令。
$some_value=2;
file_put_contents("php://stderr", "$some_value\n");