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'] ?? []);
    }
}

解决 laravel-admin between datetime 假如数据库是时间戳int类型无法筛选。

laravel-admin默认的between->datetime(),查询默认是datetime类型,但是假如数据库是时间戳类型就会报错,又不想改底层文件的话可以试试加自定义筛选功能...

阅读全文

php解析英文语句,自动分解。

参考:https://www.php.net/manual/en/function.str-split.php 最近碰到一个问题,客户的英文地址太长,超出接口api字段长度,所以需要解析下语句分解发送。 ...

阅读全文

记录一个laravel-excel导出表格值为0导出excel显示空的解决方法。

最近在使用laravel-excel导出表格的时候,发现假如字段值为0的情况下,导出的excel中直接显示为空,找到一个方法解决,如下. 在laravel-excel的config配置中...

阅读全文

欢迎留言