2013-02-16 80 views
0

我在基于PSR-3标准(以及随其提供的接口/类 - https://github.com/php-fig/log)实施日志记录系统时遇到问题。日志行格式化

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

[01/01/2013 12:00:00] NOTICE: Log message content\n

以及

user: Log message content (NOTICE) ~ 01-01-2013

(完全自定义的顺序和内容)

而且,我想创造单独的类那。

有没有办法以非常容易的方式做到这一点,所以其他人(即使是低技能的phpers)也不会有改变这个问题的问题?

+0

无论您如何写“get-at-at-able”,人们都会找到办法将其搞砸。担心低技能的编码人员阅读你的代码是浪费时间。 – 2013-02-16 21:51:04

+0

好吧,所以我正在考虑像元素数组(像key => value)和消息格式,如'[{date}] {level}:{message} \ n'。消息字符串会替换“{message}”标记,日志级别为“{level}”标记,其余部分将自定义。也为动态值(如日期),我将不得不检查值是否可调用。你认为这是个好主意吗? – 2013-02-16 21:59:54

回答

0

也许是主流,但你看着Monolog

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

该解决方案也更好,因为您可以在Monolog中使用ONE Logger和许多处理程序。

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