首页  >  问答  >  正文

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 [] []
然而并没有看出有什么实际的用途,好像就是往指定的文件里面写了一点信息的作用...

大家讲道理大家讲道理2772 天前366

全部回复(1)我来回复

  • 黄舟

    黄舟2017-04-11 10:23:09

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

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

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

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

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

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

    回复
    0
  • 取消回复