如何在 fuelPHP 中将日志输出到 StackDriver 日志
How to output log to StackDriver logging in fuelPHP
我部署的应用是由 GKE 上的 fuelPHP 创建的。
GKE 集群已启用 Stackdriver Kubernetes Engine 监控。
https://cloud.google.com/monitoring/kubernetes-engine
但是 fuelPHP 的 Log::xxxx() 没有输出到 stackdriver 日志记录。
然后我修改了config.php如下
//'log_path' =>APPPATH. 'logs',
'log_path' => '/dev/stdout',
没用。(出现错误“/dev/stdout 不存在”)。
如何将日志输出到 StackDriver logging?
我将 core/Log class 覆盖为 app/Log。
app/classes/log.php
<?php
class Log extends \Fuel\Core\Log
{
public static function initialize()
{
//$stream = new \Monolog\Handler\StreamHandler($filename, \Monolog\Logger::DEBUG);
$stream = new \Monolog\Handler\StreamHandler('php://stdout', \Monolog\Logger::DEBUG);
$formatter = new \Monolog\Formatter\LineFormatter("%level_name% - %datetime% --> %message%".PHP_EOL, "Y-m-d H:i:s");
$stream->setFormatter($formatter);
static::$monolog->pushHandler($stream);
}
}
并在 app/bootstrap.php。
在示例中添加
// Example: 'Log' => APPPATH.'classes/log.php',
我部署的应用是由 GKE 上的 fuelPHP 创建的。
GKE 集群已启用 Stackdriver Kubernetes Engine 监控。 https://cloud.google.com/monitoring/kubernetes-engine
但是 fuelPHP 的 Log::xxxx() 没有输出到 stackdriver 日志记录。 然后我修改了config.php如下
//'log_path' =>APPPATH. 'logs',
'log_path' => '/dev/stdout',
没用。(出现错误“/dev/stdout 不存在”)。
如何将日志输出到 StackDriver logging?
我将 core/Log class 覆盖为 app/Log。
app/classes/log.php
<?php
class Log extends \Fuel\Core\Log
{
public static function initialize()
{
//$stream = new \Monolog\Handler\StreamHandler($filename, \Monolog\Logger::DEBUG);
$stream = new \Monolog\Handler\StreamHandler('php://stdout', \Monolog\Logger::DEBUG);
$formatter = new \Monolog\Formatter\LineFormatter("%level_name% - %datetime% --> %message%".PHP_EOL, "Y-m-d H:i:s");
$stream->setFormatter($formatter);
static::$monolog->pushHandler($stream);
}
}
并在 app/bootstrap.php。 在示例中添加
// Example: 'Log' => APPPATH.'classes/log.php',