Integrasi Sentry.io dan Django Framework

Integrasi Sentry.io dan Django Framework

Django menggunakan modul logging bawaan Python untuk melakukan logging sistem. Penggunaan modul ini dibahas secara rinci dalam dokumentasi Python.

Logger adalah titik masuk ke sistem logging. Setiap logger adalah perkakas yang pesannya dapat ditulis untuk diproses.

Logger dikonfigurasi untuk memiliki level log. Level log ini menjelaskan tingkat keparahan pesan yang akan ditangani oleh logger. Python mendefinisikan level log sebagai berikut:


  • DEBUG : Informasi sistem tingkat rendah untuk keperluan debugging

  • INFO: Informasi system umum

  • WARNING: Informasi yang menggambarkan masalah kecil yang telah terjadi

  • ERROR: Informasi yang menggambarkan masalah utama yang telah terjadi

  • CRITICAL: Informasi yang menggambarkan masalah kritis yang telah terjadi


Setiap pesan yang ditulis ke logger adalah Catatan Log. Setiap catatan log juga memiliki tingkat log yang menunjukkan tingkat keparahan pesan tertentu. Catatan log juga bisa berisi metadata berguna yang menjelaskan peristiwa yang sedang dicatat. Ini dapat mencakup detail seperti jejak kesalahan kode program.

Ketika sebuah pesan diberikan kepada logger, level log dari pesan tersebut dibandingkan dengan level log dari logger. Jika tingkat log dari pesan memenuhi atau melampaui tingkat log dari logger itu sendiri, pesan tersebut akan diproses lebih lanjut. Jika tidak, pesan akan diabaikan.

untuk mengikuti artikel ini pastikan kamu sudah berada pada mode environment, baca jugakonfigurasi python virtualenvironment.

selanjutnya untuk django logger kita akan menggunakan raven, install dengan pip

pip install raven

tambahkan raven.contrib.django.raven_compat pada installed apps yang dapat kamu temukan di filet settings.py

INSTALLED_APPS = (
'raven.contrib.django.raven_compat',
)

tambahkan RAVEN_CONFIG pada file settings.py

.....
import raven

RAVEN_CONFIG = {
'dsn': '___DSN___',
}

untuk mendapatkan sentry DSN kamu harus register terlebih dahulu di sentry.io, kmu dapat menemukan sentry DSN di menu project>settings>cleint keys(dsn)

integrasikan sentry dengan logging perhatikan konfigurasi dibawah ini, tambahkan di file settings.py

LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s '
'%(process)d %(thread)d %(message)s'
},
},
'handlers': {
'sentry': {
'level': 'ERROR', # To capture more than ERROR, change to WARNING, INFO, etc.
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
'tags': {'custom-tag': 'x'},
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose'
}
},
'loggers': {
'root': {
'level': 'WARNING',
'handlers': ['sentry'],
},
'django.db.backends': {
'level': 'ERROR',
'handlers': ['console'],
'propagate': False,
},
'raven': {
'level': 'DEBUG',
'handlers': ['console'],
'propagate': False,
},
'sentry.errors': {
'level': 'DEBUG',
'handlers': ['console'],
'propagate': False,
},
},
}

tambahkan konfigurasi pada midleware apps django

MIDDLEWARE = [
.......
#sentry
'raven.contrib.django.raven_compat.middleware.Sentry404CatchMiddleware',

]

konfigurasi sentry pada framework django sudah selesai, tiba saatnya kita melakukan pengujian pada aplikasi kita apakah sudah berhasil terintegrasi dengan sentry. Untuk melakukan simple test buka web browser kemudian ketikan url berikut :

http://localhost:8000/sdfdfdfd

kemudian login ke sentry, pilih project yang kamu buat dan akan menemukan pesan seperti di bawah ini :

sentry logger

 

baca artikel lainya :