Dalam production environment, akan sangat bagus untuk mendapatkan peringatan instan jika terjadi kesalahan dalam aplikasi Anda. Jika Anda adalah bagian dari tim besar, maka akan sangat ideal bahwa peringatan akan diteruskan ke orang yang tepat untuk menyelesaikan masalah tersebut.
Bayangkan jika beberapa kesalahan terjadi dalam aplikasi Anda pada lingkungan produksi dan kemudian Anda harus melalui file besar dari log kesalahan untuk menemukan apa yang sebenarnya terjadi pada waktu tertentu untuk pengguna tertentu (terjadi pada saya berkali-kali). Akan sangat ideal untuk menelusuri riwayat kesalahan aplikasi Anda tepat di dalam browser Anda.
Di situlah Sentry berperan. Sentry adalah alat pelacakan kesalahan berbasis cloud yang hadir dengan langganan gratis dan berbayar. Anda dapat menelusuri daftar lengkap fitur di situs web mereka di Sentry.io . Salah satu fitur paling keren dari Sentry adalah fakta bahwa itu sangat mudah untuk diintegrasikan ke dalam aplikasi Anda. Jadi mari kita mulai.
Instalasi
Pertama, Anda harus mendaftarkan akun di situs web Sentry (paket gratis sudah cukup untuk membantu Anda memulai) dan membuat proyek. Proses pembuatan proyek sangat mudah, bahkan ada opsi untuk proyek Laravel yang akan menyesuaikan dokumentasi sesuai dengan proyek Anda. Setelah Anda selesai melakukannya, kembalilah ke sini!
Saya akan menggunakan rilis terbaru Laravel yaitu ^8.0. Untuk membuat aplikasi Laravel baru, saya akan menggunakan perintah composer create-project .
composer create-project laravel/laravel laravel-sentry
Sentry dapat diintegrasikan ke dalam aplikasi Laravel menggunakan paket asli sentry-laravel . Sekarang kita akan menginstal paket ini menggunakan composer.
composer require sentry/sentry-laravel
Setelah package diinstal, kita perlu membuat file konfigurasi untuk paket ini menggunakan perintah di bawah ini.
php artisan vendor:publish --provider="Sentry\Laravel\ServiceProvider"
Saat Anda membuat akun baru di situs Sentry, Anda akan diberikan string DSN yang seperti API key, jika Anda belum menyalinnya, Anda dapat mengambilnya dari area pengaturan. Selanjutnya, kita akan menambahkan key itu ke .env file kita .
SENTRY_LARAVEL_DSN=https://xxxxx@sentry.io/0000000
Di mana xxxxx dan 0000000 akan setara dengan key Anda dari Sentry.
Sentry documentation untuk Laravel akan menyarankan Anda untuk menghubungkan ke menangkap kesalahan Laravel melalui penangan Pengecualian.
Saya selalu mengatur Sentry menggunakan saluran log sehingga akan merekomendasikan Anda mengikuti pendekatan ini karena akan lebih dapat diandalkan.
Untuk menggunakan saluran log, Anda perlu menambahkan saluran baru ke config/logging.phpfile konfigurasi Anda .
'channels' => [
// ...
'sentry' => [
'driver' => 'sentry',
'level' => null,
'bubble' => true,
],
],
The level, memungkinkan Anda untuk mengontrol tingkat kesalahan minimum yang akan dikirim ke sentry. Laravel menggunakan Monolog untuk menangani kesalahan, sehingga Anda dapat melihat level yang tersedia dalam dokumentasinya .
The bubble memungkinkan / mencegah kesalahan dari yang dilaporkan ke saluran lain setelah kesalahan yang ditangani oleh Sentry.
Configuring Channel
Untuk mengonfigurasi aplikasi Anda agar menggunakan Sentry sebagai saluran log, cukup ubah LOG_CHANNEL nilainya menjadi di bawah ini.
LOG_CHANNEL=sentry
Mulai sekarang semua error akan dicatat ke Sentry.
Dalam aplikasi saya, saya suka menggunakan opsi stack yang memungkinkan aplikasi kita mencatat error ke beberapa saluran. Saya biasanya menggunakan daily dan sentry sebagai stack karena pertama-tama suka mencatat kesalahan ke file lokal dan kemudian mengirimkannya ke Sentry. Ini memungkinkan saya untuk melacak kesalahan dalam file log dan itu tidak akan pernah terlewatkan.
Jadi untuk pendekatan saya di atas, perbarui .env file ke bawah.
LOG_CHANNEL=stack
dan dalam config/logging.phpfile perbarui saluran stack seperti di bawah ini.
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily', 'sentry']
],
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 28,
],
'sentry' => [
'driver' => 'sentry',
'level' => 'debug',
'bubble' => true,
],
...
],
Testing Error Logging
Sekarang kita telah mengintegrasikan Sentry ke dalam aplikasi, kita akan menguji apakah semuanya sudah diatur dengan benar. Untuk ini, paket Sentry menyediakan perintah yang keren untuk menguji integrasi.
Di konsol Anda, jalankan perintah di bawah ini.
php artisan sentry:test
Jika semuanya sudah diatur dengan benar, Anda akan melihat output seperti di bawah ini.
[Sentry] DSN discovered! [Sentry] Generating test Event [Sentry] Sending test Event [Sentry] Event sent with ID: 31e6f44928284d67b891bf4b5415fbbb
Kami juga dapat mengujinya dengan throwing an exception, Misalnya, tambahkan route di bawah ini di routes/web.php file Anda dan akses route di browser.
Route::get('/sentry-test', function () {
throw new \Exception("Sentry Test Exception");
});
Anda akan menerima email peringatan jika Anda telah mengaturnya di area akun Sentry dan juga akan melihatnya di dasboard Sentry seperti di bawah ini.

Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.