Pengenalan Logging
Logging yang berisikan informasi dari sebuah sistem bisa memberikan pesan yang jelas terkait suatu kejadian yang terjadi pada sistem kita. Logging bukan hanya untuk kebutuhan menampilkan informasi dan kadang juga bisa digunakan sebagai proses debugging ketika terjadi masalah pada sistem yang sudah kita buat.
Banyak sekali mekanisme Logging pada sistem, ada yang berupa menyimpan pada suatu file, simpan di database dan bahkan ada thirdparty khusus yang bisa digunakan untuk proses Logging misalkan ElasticSearch Kibana. Sebegitu pentingnya suatu Logging sehingga banyak sekali mekanisme penyimpanan Logging ini agar terdistribusi, tercatat secara historikal agar kejadian-kejadian yang terjadi pada sistem seperti masalah sistem, masalah perhitungan sampai ke dalam permasalahan proses bisnis yang dibuat pada sistem bisa jadi tercatat pada sistem Logging ini.
Library yang dipakai
Pada Golang sebenarnya package logging Framework sudah tersedia, hanya saja fitur-fitur yang disediakan terbatas dan tidak selengkap beberapa library yang sekarang banyak menyebar bahkan untuk kebutuhan-kebutuhan khusus. Kebanyakan programmer juga tidak menggunakannya ketika sudah mengimplementaiskan di live production.
Bnyak sekali library yang sudah menyebar di kalangan prograamer khususnya golang, diantaranya:
- Zerolog: https://github.com/rs/zerolog
- Zap: https://github.com/uber-go/zap
- Logrus: https://github.com/sirupsen/logrus
- dan masih banyak yang lainnya.
Berdasarkan informasi benchmarking disini dengan kesimpulan bahwa Zerolog, Zap memiliki high-performance tetapi ketika kita ingin mempelajari Logging yang standard dan mudah untuk dipakai bisa juga kita menggunakan Logrus.
Pada kali ini kita akan pakai package atau Framework logging Logrus karena kita ingin yang mudah untuk dipakai dan diimplemantasikan pada sistem kita dan juga melihat dari bintang pada repository, package ini paling populer dari semuanya.
Membuat Projek Baru
Kita langsung coba membuat projek baru untuk mempelajari mulai dari dasar yaitu dengan membuat nama folder learn-golang-logging
lalu kita lakukan ini pada terminal.
go mod init github.com/santekno/learn-golang-logging
dilanjutkan dengan menambahkan dependency package yang akan kita pakai
go get github.com/sirupsen/logrus
maka akan terlihat dua file yaitu go.mod
dan go.sum
seperti dibawah ini.
.
├── go.mod
└── go.sum
dan akan terisi file go.mod
seperti ini
module github.com/santekno/learn-golang-logging
go 1.21.1
require (
github.com/sirupsen/logrus v1.9.3 // indirect
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 // indirect
)
Pembuatan projek baru sudah tersedia dan kita siap untuk mempelajari Logging pada Golang di artikel selanjutnya. Jika teman-teman ingin menambahkan repo dan disimpan di dalam git, maka bisa tambahkan initial git dan push ke dalam git repository misalnya saat ini santekno menggunakan github untuk penyimpanan kode repository yang kita buat.
git init
git remote add origin git@github.com:santekno/learn-golang-logging.git
git push origin main