lumen 自定义错误日志文件

Posted 码上平天下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lumen 自定义错误日志文件相关的知识,希望对你有一定的参考价值。

自定义错误日志文件,改造新的方法

<?php
namespace App;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Formatter\LineFormatter;

class LogLib
{
    //define static log instance.
    protected static $_log_instance;
    /**
     * 获取log实例
     *
     * @return obj
     * @author Sphenginx
     **/
    public static function getLogInstance()
    {
        if (static::$_log_instance === null) {
            static::$_log_instance = new Logger(‘NOTICE‘);
        }
        return static::$_log_instance;
    }
    /**
     * Handle dynamic, static calls to the object.
     *
     * @param  string  $method 可用方法: debug|info|notice|warning|error|critical|alert|emergency 可调用的方法详见 Monolog\Logger 类
     * @param  array   $args 调用参数
     * @return mixed
     * @author Sphenginx
     */
    public static function __callStatic($method, $args)
    {
        $instance = static::getLogInstance();
        //组织参数信息
        $message = $args[0];
        //记录上下文日志
        $context = isset($args[1]) ? $args[1] : [];
        //定义记录日志文件
        $path    = isset($args[2]) ? $args[2] : ‘/notice/‘;
        //设置日志处理手柄,默认为写入文件(还有mail、console、db、redis等方式,详见Monolog\handler 目录)
        $handler = new StreamHandler(storage_path($path) . date(‘Y-m-d‘).‘.log‘, Logger::toMonologLevel($method), $bubble = true, $filePermission = 0777);
        //设置输出格式LineFormatter(Monolog\Formatter\LineFormatter), ignore context and extra
        $handler->setFormatter(new LineFormatter(null, null, true, true));
        $instance->setHandlers([$handler]);
        $instance->$method($message, $context);
    }
}

 

以上是关于lumen 自定义错误日志文件的主要内容,如果未能解决你的问题,请参考以下文章

Lumen 中的自定义 404 页面

Lumen 提供验证错误的代码

lumen 下使用自定义配置文件

控制台生命周期中的 Lumen 自定义中间件

在 Lumen 7 中验证时如何返回自定义 JSON 数组名称和内部元素?

VSCode自定义代码片段——.vue文件的模板