laravel5.8(八)日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Laravel框架的日志使用的是日志插件Monolog,这个应该是目前比较好用的日志插件之一了。官方给了一些配置日志的选项。说实话,可能是功力尚浅,没看懂。这就尴尬了。后百度了一下,大概明白了日志的一些大概的情况。一:配置官方日志插件1:配置logging.php文件位置:./config/logging.php在数组中添加一下配置

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

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

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

一:配置官方日志插件

1:配置logging.php

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

在数组中添加一下配置

php

复制代码

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

增加使用命名空间:

php

复制代码

use Monolog\Handler\JsonFormatter;

使用log需要添加命名空间

php

复制代码

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

调用这里有两种情况:

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

php

复制代码

LOG_CHANNEL=daily         #设置日志驱动

调用:

php

复制代码

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

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

php

复制代码

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

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

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

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

php

复制代码

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

注意命名空间中的引用

php

复制代码

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

其他的就没什么了。

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

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

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

欢迎访问个人博客 guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
30天前
|
开发框架 前端开发 JavaScript
Laravel
【7月更文挑战第21天】
27 4
|
8月前
|
小程序 关系型数据库 数据库连接
laravel5.8(十一)配置使用多数据库
有的时候,我们在开发的过程中需要连接多个数据库。 Laravel框架中早已为我们想到了这样的需求。 配置很简单。 在根目录下的/config/database.php文件中配置: Laravel中为我们提前预设了多种类型的数据库连接
44 0
|
中间件 数据安全/隐私保护
laravel-中间件
laravel-中间件
|
前端开发 PHP
laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)
laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)
386 0
laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)
|
数据安全/隐私保护
Yii2如何把日志发送邮件?底层原理是什么?
Yii2如何把日志发送邮件?底层原理是什么?
100 0
|
中间件 PHP
【laravel】中间件
【laravel】中间件
124 1
【laravel】中间件
laravel练习01
laravel练习01
122 0
|
PHP
【laravel】@15 查询构建器(2)
【laravel】@15 查询构建器
128 0
【laravel】@15 查询构建器(2)
|
PHP
【laravel】@15 查询构建器(1)
【laravel】@15 查询构建器
81 0
【laravel】@15 查询构建器(1)
Yii2框架(五)日志的相关配置及使用
Yii2.0框架的日志操作如下,大概有五种方式: Yii::getLogger()->log($message, $level, $category = 'application') Yii::trace($message, $category = 'application'); Yii::error($message, $category = 'application'); Yii::warning($message, $category = 'application'); Yii::info($message, $category = 'application');
354 0
Yii2框架(五)日志的相关配置及使用