美文网首页
laravel5.8(八)日志

laravel5.8(八)日志

作者: camellias__ | 来源:发表于2020-11-18 11:11 被阅读0次

    Laravel框架的日志使用的是日志插件Monolog,这个应该是目前比较好用的日志插件之一了。

    官方给了一些配置日志的选项。说实话,可能是功力尚浅,没看懂。

    这就尴尬了。后百度了一下,大概明白了日志的一些大概的情况。

    一:配置官方日志插件

    1:配置logging.php

    文件位置:./config/logging.php

    在数组中添加一下配置

    'daily' => [
                // 日志驱动
                'driver' => 'daily',
                // 日志存放位置
                'path' => storage_path('logs/laravel.log'),
                // 日志记录登记
                'level' => 'debug',
                // 日志存放天数
                'days' => 7,
                // 日志存放内容格式
                'formatter'=>JsonFormatter::class
            ],
    

    增加使用命名空间:

    use Monolog\Handler\JsonFormatter;
    

    使用log需要添加命名空间

    // 使用日志类
    use Illuminate\Support\Facades\Log;
    

    调用这里有两种情况:

    1:在./.env文件中增加如下配置:

    LOG_CHANNEL=daily         #设置日志驱动
    

    调用:

    // ==========================================================
            // 调用日志
            $array['dsfghj'] = 'aesdrfjk';
            $array['dasf'] = 'dzs';
            $array['xzcv'] = 'sdgfhj';
            Log::info('json', $array);
    

    2:不配置./.env 中的参数的情况下调用

    Log::channel('daily')->info('json', $array);
    
    

    二:使用官方日志插件,自定义日志方法

    我这里自定义的日志方法使用的也是Monolog日志插件

    我这里定义了一个控制器,哪里需要使用,哪里实例化调用就可以了。

    <?php
      
    namespace App\Http\Controllers\Common;
      
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;
    use Illuminate\Support\Facades\Storage;
    use App\Http\Controllers\Controller;
    use App\Http\Controllers\Common\CommonController;
    use Monolog\Logger;
    use Monolog\Handler\StreamHandler;
      
    class LogController extends CommonController
    {
        public function addLog($json)
        {
            // =========================================================
            // 更改时区(不更改时区,默认与北京时间有8个小时的时差)
            date_default_timezone_set('Asia/Shanghai');
            // 日志文件名称
            $filename = date('Y-m-d', time()) . '.log';
            // 日志存放路径
            $path = LOG_PATH . $filename;
            // 文件是否存在
            if (!file_exists($path)) 
            {
                fopen($path, "w");
            }
            // 实例化日志类(此处日志抬头信息,可自定义,便于快速找出你需要的日志)
            $view_log = new Logger('Region Logs');
            // 写入
            $view_log->pushHandler(new StreamHandler($path, Logger::INFO));
            $view_log->info($json);
        }
    }
     
    

    注意命名空间中的引用

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

    其他的就没什么了。

    最后啰嗦一句,具体使用哪一个,还是要看自己的需求,官方给的那个玩意,我不太愿意用,也可能是我没有研究明白具体怎么配置,感觉使用起来不是那么灵活。

    自定义的话,反正也是利用官方的插件,只是在实现的时候进行了自己的定义,我觉得没什么太大的问题。

    原文链接:https://guanchao.site/index/article/articledetail.html?artid=Oo0Apauai

    有好的建议,请在下方那个输入你的评论。

    相关文章

      网友评论

          本文标题:laravel5.8(八)日志

          本文链接:https://www.haomeiwen.com/subject/jhzqiktx.html