laravel日志的添加使用

本文介绍了在 Laravel 中如何记录系统日志,特别是在控制器层使用 `Log` facade 输出信息,并详细讲解了如何设置监听器以自动记录每次SQL执行的详情,包括SQL语句、参数和耗时,便于开发与调试。
摘要由CSDN通过智能技术生成

        开始学laravel,我们一般都需要记录系统的运行日志,所以就看了下如何记录日志,特此分享:

 

1)Laravel 默认为应用程序建立每天的日志文件在 storage/logs 目录。你可以像这样把信息写到日志:

 

首先 , 在控制器层 写如  :   use Log;

在你的每个方法中写入: 

Log::info('This is some useful information.');

之后回到目录   /storage/logs/laravel-{当天日期}.log中看一看是否已经存到日志中。

 

2)添加执行系统运行的sql日志信息

AppServiceProvider.php 

首先,需要引入

use DB;

use Monolog\Logger;

use Monolog\Handler\StreamHandler;

 

再修改 boot()方法,添加以下代码:

 

 DB::listen(function($sql, $bindings, $time) {

           // echo 'SQL语句执行:'.$sql.',参数:'.json_encode($bindings).',耗时:'.$time.'ms';

           $log = new Logger('sql_log');

           $logDir = storage_path('logs/sql');    //storage\logs\sql

             if (!is_dir($logDir)) {

                  mkdir($logDir, 0777, true);

            }

           /* $param = '[';

           foreach($bindings as $x=>$x_value) {

               $param = $param.$x_value.',';

            }

           $param.']';*/

           $log->pushHandler(new StreamHandler($logDir . '/' . date('Y-m-d') . '.log', Logger::DEBUG));

           $log->addInfo('SQL语句执行:'.$sql.',参数:'.'['.join(", ",$bindings).']'.',耗时:'.$time.'ms');

        });

此时,系统中运行的sql语句就记录下来,不需要在手动的编写写入文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值