php 的扩展包monolog/monolog 有什么实际的用途?

官网,包括网上查了,看了好几篇,都没有看懂有什么实际的作用,就拿官网给出的例子说,`<?php

use MonologLogger;
use MonologHandlerStreamHandler;

// 创建日志频道
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

// 添加日志记录
$log->addWarning('Foo');
$log->addError('Bar');`
我尝试了一下,生成的就是:
[2017-03-21 10:34:49] name.WARNING: Foo [] []
[2017-03-21 10:34:49] name.ERROR: Bar [] []
然而并没有看出有什么实际的用途,好像就是往指定的文件里面写了一点信息的作用...

阅读 5.3k
1 个回答

第一,为什么要记录日志?

很多时候确实也不想记录日志,记录了会占用服务器磁盘空间,网站访问量大的话一天几百兆甚至上G的空间也是蛮大的负担。但是运维过程中,经常会发生各种各样的错误和异常,你不记录日志的话这些错误和异常就只能靠复现了。而记录日志的话,看看日志很多时候就明白了。

此外,和其他系统之间的接口之类的如果不记录日志,出了问题那就扯不清了。

第二,为什么要用pushHandler这种方式?

就我做过的一个项目,日志除了记录到文件外,还要发送到ELK上,还要把错误日志发送邮件给运维人员,如果直接写死也太死板了,通过pushHandler增加各种处理器来处理会很灵活的。

WhatFailureGroupHandler 这种前人总结好的handler还能提高记录日志的性能,也省去了很多自己重复造轮子的工作量。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏