Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 日志行格式_Php_Class_Logging_Psr 3 - Fatal编程技术网

Php 日志行格式

Php 日志行格式,php,class,logging,psr-3,Php,Class,Logging,Psr 3,我对基于PSR-3标准(以及随它一起提供的接口/类)的日志系统的实现存在问题 我创建了一些扩展PSR-3:logger的类,它使用适配器来执行实际的日志记录(logger类存储适配器实例并在其中调用log()方法),我来到了文件适配器(将日志消息写入文件的适配器),我正在寻找实现自定义日志行格式的方法。我的意思是我可以将消息记录为 [01/01/2013 12:00:00]通知:日志消息内容\n 以及 用户:日志消息内容(通知)~01-01-2013 (填写定制订单和内容) 此外,我还想为此创建

我对基于PSR-3标准(以及随它一起提供的接口/类)的日志系统的实现存在问题

我创建了一些扩展PSR-3:logger的类,它使用适配器来执行实际的日志记录(logger类存储适配器实例并在其中调用log()方法),我来到了文件适配器(将日志消息写入文件的适配器),我正在寻找实现自定义日志行格式的方法。我的意思是我可以将消息记录为

[01/01/2013 12:00:00]通知:日志消息内容\n

以及

用户:日志消息内容(通知)~01-01-2013

(填写定制订单和内容)

此外,我还想为此创建单独的类


有没有什么方法可以用非常能干的方式做到这一点,这样其他人(即使是低技能的PHPER)就不会有改变这一点的问题了?

也许这是主流,但你看过了吗

您可以实现
HandlerInterface
,而不是
LoggerInterface
。格式化将通过使用您的模式的独白来解决

这个解决方案也更好,因为您可以在Monolog中使用一个记录器和多个处理程序


有一个缺点/优点(由您决定):您必须在处理程序中实现您的级别日志记录,这可能有点难看。

无论您如何“获得能力”编写它,人们都会找到一种方法将其搞糟。担心低技能的程序员阅读您的代码是浪费时间。好的,所以我考虑的是元素数组(作为key=>value)和消息格式类似于“[{date}]{level}:{message}\n”。消息字符串将替换“{Message}”标记、日志级别“{level}”标记,其余将是自定义的。此外,对于动态值(如日期),我必须检查该值是否可调用。你认为这是个好主意吗?