laravel日志的添加使用

        开始学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语句就记录下来,不需要在手动的编写写入文件。

你可能感兴趣的:(laravel)