Laravel ialah rangka kerja PHP popular yang mempunyai banyak fungsi terbina dalam untuk memudahkan pembangunan kami, antaranya pembalakan adalah salah satunya. Dengan merekodkan log, kami boleh mencari masalah dalam program dengan cepat dan meningkatkan kestabilan dan kebolehselenggaraan program. Dalam artikel ini, kami akan meneroka cara log menggunakan Laravel Logging.
Pengelogan Laravel ialah kaedah pengelogan yang dibina dalam rangka kerja Laravel. Ia menulis log ke media storan yang berbeza dengan menentukan pemacu, seperti fail, pangkalan data, syslog, redis, dll. Dalam rangka kerja Laravel, pemacu lalai ialah satu fail, tetapi kami juga boleh menukar pemacu lalai melalui konfigurasi mudah untuk menyesuaikan diri dengan situasi yang berbeza.
Secara lalai, fail konfigurasi Pengelogan Laravel terletak dalam config/logging.php. Dalam fail ini, kita boleh menentukan konfigurasi log global, seperti pemacu log lalai, lokasi penyimpanan fail log dan kaedah pemprosesan untuk tahap log yang berbeza.
Secara lalai, Laravel Logging mendayakan pemacu untuk satu fail yang terletak di storage/logs/laravel.log. Dalam rangka kerja Laravel, mesej log boleh diperkenalkan menggunakan muka hadapan Log, contohnya:
use IlluminateSupportFacadesLog; Log::info('This is an information message.'); Log::error('Something went wrong.');
Menggunakan kod di atas, anda boleh menulis maklumat dan mesej log tahap ralat ke fail log lalai juga merujuk kepada kaedah penulisannya.
Selain fail pemacu log lalai, kami juga boleh menggunakan pemacu lain, seperti fail bertarikh, putaran log, melalui permintaan HTTP Hantar log kepada perkhidmatan jauh dan banyak lagi. Dalam fail config/logging.php, kami boleh mentakrifkan pemacu log dan parameter secara langsung, contohnya:
'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => 'debug', 'days' => 14, ], 'syslog' => [ 'driver' => 'syslog', 'level' => 'warning', ]
Kami boleh menggunakan pemacu harian untuk membahagikan fail log mengikut tarikh, dan tempoh setiap fail ialah 14 langit. Kami juga boleh menggunakan pemacu syslog untuk menghantar mesej log kepada perkhidmatan pengelogan sistem, seperti daemon syslogd Linux.
Dalam aplikasi praktikal, kita selalunya perlu merekodkan beberapa maklumat konteks pada masa yang sama, seperti ID pengguna, URI yang diminta, alamat IP pelanggan, dll. Dalam Pengelogan Laravel, kita boleh merekodkan maklumat ini melalui konteks log.
Sebagai contoh, dalam permintaan HTTP, kami boleh menggunakan kod berikut untuk merekodkan beberapa maklumat kontekstual ke fail log:
use IlluminateSupportFacadesLog; Log::channel('mylog')->withContext([ 'user_id' => $request->user()->id, 'ip' => $request->getClientIp(), 'uri' => $request->getUri(), ])->info('An information message with context.');
Dalam kod di atas, kami menggunakan kaedah saluran Log fasad, Saluran log bernama mylog ditentukan. Kemudian gunakan kaedah withContext untuk menghantar beberapa maklumat konteks ke dalam pembalak, dan akhirnya gunakan kaedah maklumat untuk log mesej log ke fail.
Selain menggunakan konfigurasi lalai Pengelogan Laravel, kami juga boleh melaksanakan pengelogan yang lebih kompleks dengan menulis sistem komponen pengelog tersuai.
Mula-mula, kita perlu mencipta konfigurasi saluran log baharu, contohnya:
'custom' => [ 'driver' => 'custom', 'via' => AppLoggingCustomLogger::class, 'level' => 'debug', ],
Dalam konfigurasi di atas, kami menentukan pemacu tersuai dan membuat instantiat menggunakan AppLoggingCustomLogger::class Penulis log tersuai.
Kami kemudiannya boleh menulis komponen penulis log tersuai, contohnya:
<?php namespace AppLogging; use MonologFormatterHtmlFormatter; use MonologHandlerStreamHandler; use MonologLogger; class CustomLogger { static public function __invoke(array $config) { $logger = new Logger('custom'); $handler = new StreamHandler($config['path']); $handler->setFormatter(new HtmlFormatter()); $logger->pushHandler($handler); return $logger; } }
Dalam contoh di atas, kami mencipta kelas yang dipanggil CustomLogger yang menggunakan Monolog Beberapa fungsi dalam komponen menulis log ke fail yang ditentukan dan merekodkannya dalam format HTML.
Akhir sekali, kami boleh menggunakan pengelog tersuai dengan cara berikut:
use IlluminateSupportFacadesLog; Log::channel('custom')->info('A custom information message.');
Dengan cara ini, kami boleh mengawal sepenuhnya pelaksanaan Pengelogan Laravel dan mencapai keperluan Dokumen pengelogan yang lebih tersuai.
Ringkasan
Pengelogan Laravel ialah kaedah pengelogan terbina dalam rangka kerja Laravel Ia boleh merekodkan mesej log ke pelbagai media storan seperti fail, pangkalan data dan syslog. Kami boleh mengawal kaedah rakaman dan kandungan mesej log melalui fail konfigurasi dan rakaman konteks. Selain itu, kami juga boleh menyesuaikan pelaksanaan Pengelogan Laravel secara fleksibel dengan menulis komponen logger tersuai. Pengelogan melalui Pengelogan Laravel membantu kestabilan dan kebolehselenggaraan program dan merupakan bahagian yang sangat penting dalam pembangunan Laravel.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk menggunakan Pengelogan Laravel untuk log?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!