我将前提是这一事实,我是新的symfony,但已使用Laravel一些年。
是否可以通过Symfony中的配置更改日志时间戳字符串的格式(我确信可以)。
[2022-10-18T09:11:04.228289+00:00] app.DEBUG: a message [] []
我想将它们格式化为这样...
[2022-10-18 09:11:04] app.DEBUG: a message [] []
我不确定这是否是相关设置,我怀疑它是其中的一部分,但这是Monolog中的LineFormatter类
class LineFormatter extends NormalizerFormatter
{
public const SIMPLE_FORMAT = "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n";
我假设这个位正在格式化时间戳[%datetime%],并且正在从系统范围的配置中提取。如果是这样的话,有人知道我如何覆盖它吗?
使用Symfony 6蓝牙
先谢了
加里
1条答案
按热度按时间brgchamk1#
欢迎来到stackoverflow,加里.
Monolog是一个库。Symfony通过Bundle导入库。你可以通过config子目录中的yaml文件配置它们。
要了解存在哪些选项,有三种解决方案:
1.布鲁特斯法:输入任意值以获得错误消息。您应该看到存在类似
use_milliseconds
的选项(没有我的dev计算机,我无法尝试它),但我已经使用了Brutus方法:)1.霍雷肖·凯恩法:在monolog包的源代码中,总是有一个描述可用选项的文件。在您的例子中,我在'monolog.xml文件中找到了解决方案:
我不能在手机上试用,但它应该能解决您的问题:
编辑:因为我发现了这个
use_microseconds
配置选项,我只是在一个旧的文档中找到一篇关于它的文章:https://symfony.com/doc/3.3/logging/disable_microsecond_precision.html如果你想删除UTC,你可以创建你自己的格式化程序。处理程序在记录之前使用格式化程序来格式化记录。所有Monolog处理程序默认使用Monolog\Formatter\LineFormatter的一个示例,但是你可以替换它。你的新格式化程序必须实现Monolog\Formatter\FormatterInterface。下面是一个示例文档。
您可以扩充LineFormatter并多载建构函式,以使用您的格式而非预设格式。