2017年7月12日水曜日

Laravel5でSQLのログを出力する

(2017/07/12)
LaravelでSQLをログに出力したい時ありますよね。
そんな時はこんな感じで書きます。
 
DB::enableQueryLog();
$table1 = DB::table('table1')->where('id', $no)->first();
// $results = DB::select('select * from table1 where id = ?', [1]);
logger()->debug(DB::getQueryLog());


storage/logs/laravel.logに以下のように出力されています。
[2017-07-12 03:01:50] local.DEBUG: array (
  0 =>
  array (
    'query' => '        
        select
            *
        from
            table1
        where
            value like \'%\' || \'?\' || \'%\';',
    'bindings' =>
    array (
      0 => '1',
    ),
    'time' => 1,
  ),
) 

ちなみにdebugログ出すためにconfig/app.phpの下記の部分を変更する必要があります。
 
'log_level' => env('APP_LOG_LEVEL', 'debug')

0 件のコメント:

コメントを投稿