gpt4 book ai didi

php - 在 monolog 中设置 json 格式化程序

转载 作者:行者123 更新时间:2023-12-05 07:45:38 25 4
gpt4 key购买 nike

如何在monolog中将日志设置为json格式....

$logger = new StreamHandler(__DIR__.'/my_app.log');
$logger->setFormatter( new JsonFormatter() );
$logger->pushHandler($logger);

这似乎不正确,因为它显示错误

Call to undefined method Monolog\Logger::setFormatter()

我也希望我的日志是这样记录的:

message{
a="something";
b="something else"
}

代替:

message{a="something";b="something else"}

最佳答案

如果其他人也有这个问题:格式化程序可以设置为处理程序,而不是记录器。

use Monolog\Formatter\JsonFormatter;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;

$logger = new Logger('your_channel_name');
$handler = new StreamHandler('your/dir.log');
$handler->setFormatter( new JsonFormatter() );
$logger->pushHandler($handler);

// and then where ever in the code
$logger->info('your message', ["var1" => "value 1", "otherVar" => "otherValue"]);

// it will result in a parsable output similar to this:
// {
// "message":"your message",
// "context": {
// "var1":"value 1",
// "otherVar":"otherValue"
// },
// "level":200,
// "level_name":"INFO",
// "channel":"your_channel_name",
// "datetime":"2021-06-25T10:54:10.116817+00:00",
// "extra":{}
// }

documentation本身不是最好的,但也是一个开始。

关于php - 在 monolog 中设置 json 格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41505176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com