github仓库地址
官方文档: https://github.com/Seldaek/monolog/blob/main/doc/01-usage.md

安装

$ composer require monolog/monolog

使用方法

<?php
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// 创建一个日志频道,name可以是自己自定义的key用来和其他日志类型作曲法
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

// add records to the log
$log->warning('Foo');
$log->error('Bar');

封装一个简单的类库

#使用方法
\app\common\lib\log\Log::trace('error.log', [
    'msg' => "这里是一个错误日志",
    'params' => [//数组变量,可为空
        'param1' => 'a',
        'param2' => 'b'
    ]
]);
#日志格式 [2021-02-26T01:42:47.331231+08:00] my_logger.INFO: 这里是一个错误日志
<?php
namespace app\common\lib\log;

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Handler\FirePHPHandler;

class Log
{
    public static function trace(string $file = '', array $msg = [], string $level = 'DEBUG')
    {
        switch ($level) {
            case 'DEBUG'://debug类型日志,其余日志类型可以自己扩展
                $level = Logger::DEBUG;
                break;
            default:
                $level = Logger::DEBUG;
                break;
        }

        // 创建日志频道
        $logger = new Logger('my_logger');
        //创建日志路径,我设置的路径是logs
        $logger->pushHandler(new StreamHandler('./logs/' . $file, $level));
        $logger->pushHandler(new FirePHPHandler());
        $logger->info($msg['msg'] ?? '', $msg['params'] ?? []);
    }
}

php使用Carbon获取2个日期之间的日期

<?php use Carbon\CarbonPeriod; $period = CarbonPeriod::create('2018-06-14', '2018-06-20'); // Iterate over the period fore...

阅读全文

php 解决超卖的几种方案(redis锁、mysql悲观锁)

1.创建商品和订单表模拟商品交易操作 fa_goods商品表,stock商品库存,test_order=订单表 2.添加一个测试商品数据(商品数量为150个) 测试并发购买的方法(gol...

阅读全文

centos8 yum安装php7.3

执行命令 $ yum install epel-release $ rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm $ dnf install -y https://rpms...

阅读全文

欢迎留言