JavaScriptを有効にしてください

【Laravel】ログにログ出力元のファイル情報などを出力する

 ·  ☕ 1 分で読めます

【Laravel】ログにログ出力元のファイル情報などを出力する

Laravelで簡単にログにログ出力元のファイル情報などを出力する方法メモ。

サンプルコード

確認環境

ログカスタマイズクラスを作成

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php

declare(strict_types=1);

namespace App\Logging;

use Monolog\Logger;

class CustomLog
{
    public function __invoke($monolog)
    {
        foreach ($monolog->getHandlers() as $handler) {
            // ファイル名、行、クラス名、ファンクション名
            $handler->pushProcessor(new \Monolog\Processor\IntrospectionProcessor(
                \Monolog\Logger::DEBUG,
                [
                    // 出力しないフォルダ
                    'Monolog\\',
                    'Illuminate\\',
                    'Fruitcake\\',
                ]
            ));
            // ホスト名
            $handler->pushProcessor(new \Monolog\Processor\HostnameProcessor());
            // メモリ最大使用量
            $handler->pushProcessor(new \Monolog\Processor\MemoryPeakUsageProcessor());
            // メモリ使用量
            $handler->pushProcessor(new \Monolog\Processor\MemoryUsageProcessor());
            // プロセスID
            $handler->pushProcessor(new \Monolog\Processor\ProcessIdProcessor());
        }
    }
}

ログを追加

logging.php にログを追加。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php

return [

        // この行を追加
        'custom' => [
            'driver' => 'daily',
            'path' => storage_path('logs/laravel.log'),
            'level' => env('LOG_LEVEL', 'debug'),
            'days' => 14,
            'tap' => [App\Logging\CustomLog::class],
        ],
]

設定を変更

.env の設定を変更

1
LOG_CHANNEL=custom

ログを仕込む

Welcomeページに仕込みました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php

use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Log;

Route::get('/', function () {
    Log::debug('test');
    return view('welcome');
});

出力結果

ログに適用したプロセスIDなどが出力されるようになりました。

1
[2021-12-01 02:44:56] local.DEBUG: test  {"process_id":7,"memory_usage":"2 MB","memory_peak_usage":"2 MB","hostname":"d2dc8b7547c8","file":"/var/www/app/public/index.php","line":52,"class":null,"function":null}

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer