Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk merekod log dalam rangka kerja Laravel

Bagaimana untuk merekod log dalam rangka kerja Laravel

PHPz
PHPzasal
2023-04-11 15:05:491531semak imbas

Dengan perkembangan teknologi Internet, semakin ramai orang memberi perhatian kepada isu prestasi dan keselamatan aplikasi web. Dalam kes ini, pembalakan menjadi semakin penting dalam aplikasi web. Pengelogan ialah alat yang sangat berguna untuk membantu kami menjejak dan menyahpepijat aplikasi. Pengelogan boleh membantu kami lebih memahami pengendalian aplikasi dan membantu kami mencari kesilapan dan menyelesaikan masalah apabila aplikasi gagal.

Laravel ialah rangka kerja PHP yang popular dengan banyak ciri berguna, termasuk keupayaan pengelogan. Dalam artikel ini, kita akan membincangkan cara untuk log masuk dalam rangka kerja Laravel.

Melog masuk dalam rangka kerja Laravel

Melog masuk dalam rangka kerja Laravel boleh membantu pembangun merekod peristiwa, ralat, pengecualian dan maklumat lain dalam aplikasi. Rangka kerja Laravel menyediakan sistem pengelogan yang fleksibel untuk merekodkan pelbagai jenis maklumat dalam aplikasi anda. Pengelogan membantu kami memahami kesihatan, masalah dan pengecualian aplikasi, yang sangat penting untuk mengekalkan aplikasi.

Melog masuk dalam rangka kerja Laravel terbahagi kepada dua jenis: log sistem dan log aplikasi. Log sistem merekodkan maklumat tentang perjalanan aplikasi itu sendiri, seperti sistem pengendalian yang digunakan oleh pelayan, versi PHP, versi Laravel, dsb. Log aplikasi merekodkan maklumat yang lebih terperinci tentang aplikasi, seperti maklumat permintaan pengguna, maklumat ralat dan pengecualian, dsb.

Dalam rangka kerja Laravel, pengelogan dilaksanakan melalui API bersatu. API ini membolehkan kami log maklumat pada bila-bila masa tanpa perlu risau tentang tempat dan cara untuk log. Rangka kerja Laravel menyokong pelbagai pemacu log yang berbeza, termasuk Fail, Monolog, Syslog, ErrorLog, Slack, dll. Kita boleh memilih pemacu mana yang hendak digunakan melalui pilihan dalam fail konfigurasi.

Tahap log dalam rangka kerja Laravel

Rangka kerja Laravel menyediakan enam tahap log berbeza, membolehkan kami melaraskan perincian penjanaan log mengikut jenis acara aplikasi yang berbeza. Tahap log ini termasuk:

  • kecemasan
  • amaran
  • kritikal
  • ralat
  • amaran
  • notis
  • maklumat
  • nyahpepijat

Setiap peringkat diberi keutamaan berangka yang berbeza untuk mengawal kekerapan rakaman maklumat log. Contohnya, apabila tahap pengelogan ditetapkan kepada kecemasan, maklumat log hanya akan direkodkan apabila kegagalan sistem yang serius berlaku. Apabila tahap ditetapkan kepada nyahpepijat, semua maklumat, termasuk maklumat penyahpepijatan yang paling terperinci, direkodkan.

Melog masuk dalam rangka kerja Laravel

Melog masuk dalam rangka kerja Laravel adalah sangat mudah. Kita hanya perlu menggunakan kaedah dalam Logkelas fasad untuk merekod maklumat. Seperti yang ditunjukkan di bawah:

use Illuminate\Support\Facades\Log;

//记录一个info级别的信息
Log::info('这是一个信息。');

//记录一个warning级别的信息
Log::warning('这是一个警告。');

//记录一个error级别的信息
Log::error('这是一个错误。');

Kami juga boleh menghantar lebih banyak data semasa merekodkan log, seperti maklumat permintaan pengguna, maklumat pengecualian, dsb. Maklumat ini boleh membantu kami memahami dengan lebih baik cara aplikasi berjalan dan mengenal pasti serta menyelesaikan isu yang berpotensi.

use Illuminate\Support\Facades\Log;

$user = ‘Adam’; //获取当前用户
$url = 'http://www.test.tk'; //获取用户访问的URL

//记录一个info级别的信息,并传递用户名和URL
Log::info('用户访问了一个URL', ['user' => $user, 'url' => $url]);

try {
    //执行业务逻辑代码
} catch (Exception $e) {
    //记录异常信息,并传递异常信息对象
    Log::error('发生一个异常', ['exception' => $e]);
}

Mengkonfigurasi log dalam rangka kerja Laravel

Konfigurasi log rangka kerja Laravel adalah sangat fleksibel dan kami boleh mengawal tingkah laku pengelogan melalui fail konfigurasi atau kod. Berikut ialah contoh konfigurasi fail config/logging.php biasa:

return [
    'default' => env('LOG_CHANNEL', 'stack'),
    'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['daily','slack'], //使用两个驱动程序:daily和slack
            'expires' => 14,
        ],

        'daily' => [
            'driver' => 'daily',
            'path' => storage_path('/logs/laravel.log'),
            'level' => 'info',
            'days' => 14,
        ],

        'slack' => [
            'driver' => 'slack',
            'url' => env('LOG_SLACK_WEBHOOK_URL'),
            'username' => 'Laravel Log', 
            'emoji' => ':boom:',
            'level' => 'critical',
        ],
    ],
];

Dalam fail konfigurasi ini, kami mentakrifkan dua jenis pemacu: harian dan slack. Pemandu harian menggunakan fail log berputar harian untuk merekod maklumat log, manakala pemandu slack menghantar maklumat log ke saluran Slack supaya ahli pasukan dapat memahami dengan serta-merta status berjalan aplikasi.

Ringkasan

Fungsi pengelogan rangka kerja Laravel boleh membantu kami memahami dengan lebih baik status berjalan dan masalah aplikasi. Menggunakan API pengelogan rangka kerja Laravel, kami boleh log pelbagai jenis maklumat dengan mudah, termasuk maklumat pengecualian, maklumat ralat, maklumat amaran, maklumat penyahpepijatan, dsb. Pada masa yang sama, dengan menggunakan pemacu yang berbeza, kita boleh memilih kaedah penyimpanan log yang berbeza, seperti fail, pangkalan data, Slack, dll., untuk memenuhi keperluan senario aplikasi yang berbeza.

Dalam pembangunan sebenar, pengelogan aplikasi harus menjadi pautan yang sangat penting. Pembangun harus memilih tahap pengelogan dan kaedah penyimpanan log yang sesuai berdasarkan keperluan dan syarat aplikasi untuk lebih memahami pengendalian aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk merekod log dalam rangka kerja Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn