Monolog是php下比较全又容易扩展的记录日志类库。目前有包括Symfony 、Laravel、 CakePHP等诸多知名php框架都内置了Monolog。Monolog可以把你的日志发送到文件,sockets,收件箱,数据库和各种web services。
Monolog遵循PSR3的接口规范,可以很轻易的替换成其他遵循同一规范的日志类库。Monolog具有良好的扩展性,通过Handler、Formatter和Processor这几个接口,可以对Monolog类库进行各种扩展和自定义。
composer require monolog/monolog
<?php
//加载composer autoload
require __DIR__.'/vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$log = new Logger('name');
//1.handle
//绑定处理流
$stream_handler = new StreamHandler("H:\\log_dir\\1.log");
//2.formatter
//设置格式
// $formatter = new \Monolog\Formatter\JsonFormatter();
// $formatter = new \Monolog\Formatter\HtmlFormatter();
$formatter = new \Monolog\Formatter\LineFormatter();
// $formatter = new \Monolog\Formatter\LogstashFormatter("ceshi");
// $formatter = new \Monolog\Formatter\ElasticsearchFormatter("goods","cart");
$stream_handler->setFormatter($formatter);
$log->pushHandler($stream_handler);
$arr = [
"id"=>1,
"name"=>"aaa"
];
//3.添加额外信息
//设置额外的信息
$log->pushProcessor(function($record){
$record['extra']['dummy'] = 'Hello world!';
return $record;
});
//4.写入不同日志
$log->info("info",$arr);
$log->notice("notice",$arr);
$log->debug("debug",$arr);
$log->warning("warning",$arr);
$log->error("error",$arr);