gpt4 book ai didi

laravel - 如何像格式化数组一样使用 monolog 记录多行条目?

转载 作者:行者123 更新时间:2023-12-03 23:35:28 25 4
gpt4 key购买 nike

我试图用 monolog 记录一个数组在 symfony .

$logger = $this->get('logger');
$logger->info(=print_R($user,true));

我得到的输出未格式化为预期的 print_r。它将所有内容记录在一行上。

我的 config.yml 中没有任何 Monolog 设置并怀疑这可能是问题所在。

我如何登录 print_r(array)使用 monolog 所以它以 tail -f 格式显示?

最佳答案

Monolog 使用 Monolog\Formatter\LineFormatter默认不带任何参数。格式化程序基本上是负责日志中最终输出的对象。查看构造函数定义:

public function __construct($format = null, $dateFormat = null, $allowInlineLineBreaks = false, $ignoreEmptyContextAndExtra = false)

正如您所看到的,由于第三个参数,LineFormatter 从您的 print_r 输出中创建了一行。您需要为 LineFormatter 定义带有自定义参数的新服务.
# app/config/services.yml - for example
services:
monolog.my_line_formatter: # Your name
class: Monolog\Formatter\LineFormatter
arguments: [~, ~, true]

现在找到您的 monolog 定义并使用格式化程序来满足您的需求。
# Example from default config_dev.yml
monolog:
handlers:
main:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
formatter: monolog.my_line_formatter

关于laravel - 如何像格式化数组一样使用 monolog 记录多行条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29312746/

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