【Laravel】ログにログ出力元のファイル情報などを出力する
Laravelで簡単にログにログ出力元のファイル情報などを出力する方法メモ。
サンプルコード
確認環境
PHP 8.0.1
Laravel 8.73.2
ログカスタマイズクラスを作成
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
の設定を変更
ログを仕込む
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}
|
参考