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面试题

php魔术方法 __get( $property ) 当调用一个未定义的属性时访问此方法 __set( $property, $value ) 给一个未定义的属性赋值时调用 __isset( $proper...

阅读全文

php-rdkafka测试笔记

参考:https://learnku.com/articles/15176/laravel-implementation-of-kafka-message-push-and-receive-processing 安装 安装librdkafka 库 git clone https...

阅读全文

php 二维数组根据某个键值倒叙、升序排序

<?php $array = [ [ 'title' => '标题5', 'views' => 500 ], [ 'title&...

阅读全文

欢迎留言