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