Membuat format logging

Arif Hidayat
Arunatech
Published in
4 min readJul 25, 2023

Bismillah
Membuat logging yang proper sehingga memudahkan memonitoring aplikasi, mari kita bahas Membuat Logging dengan Format Logfmt dan JSON

monitoring (freepik.com)

Logging adalah salah satu proses penting dalam pengembangan aplikasi yang bertujuan untuk merekam informasi penting tentang operasi sistem, kesalahan, atau aktivitas yang terjadi dalam aplikasi. Dengan log yang baik, engineer dapat melacak masalah, melakukan pemantauan kinerja, dan memperoleh wawasan yang berharga tentang bagaimana aplikasi berinteraksi dengan pengguna dan sistem lainnya. Dalam artikel ini, kita akan membahas dua format logging yang populer yaitu logfmt dan JSON.

Format logfmt

logfmt adalah format logging sederhana yang menggunakan pasangan kunci-nilai untuk merepresentasikan informasi log. Format ini dirancang untuk mudah dibaca oleh manusia dan mudah di-parse oleh mesin. Berikut adalah contoh format logfmt:

Format Logfmt adalah format logging sederhana yang menggunakan pasangan kunci-nilai untuk merepresentasikan informasi log. Format ini dirancang untuk mudah dibaca oleh manusia dan mudah di-parse oleh mesin. Berikut adalah contoh format logfmt:

time="2023–06–27T10:30:00Z" level=info msg="User 'john_doe' logged in"
time="2023–06–27T10:30:01Z" level=error msg="Failed to connect to database" error="connection refused"

Dalam contoh di atas, kita memiliki beberapa pasangan kunci-nilai yang mewakili informasi waktu (time), level log (level), pesan log (msg), dan informasi tambahan seperti error message (error). Keuntungan menggunakan format logfmt adalah kesederhanaannya dan kemampuannya untuk secara langsung membaca log tanpa perlu parsing yang rumit.

Untuk mengimplementasikan logging dengan format Logfmt dalam aplikasi, kita bisa menggunakan library atau framework logging yang mendukung format ini, seperti Go logrus atau Ruby logger. Dalam implementasinya, kita perlu mengumpulkan informasi yang relevan, seperti waktu, level log, pesan, dan informasi tambahan yang mungkin diperlukan untuk analisis lebih lanjut.

Pro:

  1. Kesederhanaan: Format logfmt sangat sederhana dan mudah dibaca oleh manusia. Ini memudahkan engineer atau operator sistem untuk membaca dan memahami log tanpa perlu parsing yang rumit.
  2. Efisiensi: Format logfmt memiliki ukuran log yang relatif kecil dibandingkan dengan format lain seperti JSON. Hal ini dapat mengurangi kebutuhan ruang penyimpanan dan mempercepat proses transfer atau pemrosesan log.

Kontra:

  1. Keterbatasan struktur data: Format logfmt memiliki struktur data yang terbatas karena hanya menggunakan pasangan kunci-nilai. Ini membuatnya kurang cocok untuk menyimpan data yang lebih kompleks atau terstruktur dengan baik.
  2. Kurang fleksibel: Format logfmt tidak memberikan fleksibilitas yang sama dalam mengatur hierarki atau menggabungkan informasi log. Ini mungkin menjadi kendala jika kita perlu menyimpan informasi log yang lebih kompleks atau memperoleh wawasan yang lebih dalam.

Format JSON

JSON (JavaScript Object Notation) adalah format yang umum digunakan dalam pertukaran data antara server dan aplikasi. Format ini juga dapat digunakan sebagai format logging yang fleksibel dan dapat di-parse dengan mudah oleh mesin. Berikut adalah contoh format JSON untuk logging:

{"time": "2023–06–27T10:30:00Z", "level": "info", "msg": "User 'john_doe' logged in"}
{"time": "2023–06–27T10:30:01Z", "level": "error", "msg": "Failed to connect to database", "error": "connection refused"}

Dalam format JSON, informasi log direpresentasikan sebagai objek dengan properti-properti yang sesuai. Keuntungan menggunakan format JSON adalah kemampuannya untuk menyimpan struktur data yang lebih kompleks dan fleksibilitasnya dalam menyimpan informasi tambahan.

Untuk mengimplementasikan logging dengan format JSON, kita dapat menggunakan library atau framework logging yang mendukung format ini. Dalam implementasinya, kita perlu mengkonversi informasi log menjadi objek JSON dan menyimpannya ke file log atau mengirimnya ke server logging.

Pro:

  1. Fleksibilitas: Format JSON memungkinkan kita untuk menyimpan struktur data yang lebih kompleks dengan kemampuan untuk mengatur hierarki dan menggabungkan informasi log. Hal ini memudahkan penggunaan log untuk keperluan analisis yang lebih mendalam.
  2. Dukungan yang luas: JSON adalah format yang populer dan didukung oleh banyak bahasa pemrograman, library, dan framework. Ini membuatnya mudah diintegrasikan dengan sistem eksisting dan alat analisis.

Kontra:

  1. Ukuran log yang lebih besar: Format JSON membutuhkan lebih banyak ruang penyimpanan dibandingkan dengan format Logfmt karena menggunakan tanda kurung kurawal dan tanda kutip ganda untuk setiap objek log. Ini dapat mempengaruhi kebutuhan ruang penyimpanan dan kinerja transfer atau pemrosesan log.
  2. Parsing yang kompleks: JSON memerlukan parsing yang lebih kompleks dibandingkan dengan format logfmt. Ini dapat mempengaruhi kinerja aplikasi jika parsing log JSON yang kompleks dilakukan secara berulang-ulang dalam lingkungan yang membutuhkan pemrosesan log yang cepat.

Kesimpulan:
Baik format Logfmt maupun JSON memiliki kelebihan dan kekurangan masing-masing. Format Logfmt menonjol dalam kesederhanaan dan efisiensi, sementara format JSON menawarkan fleksibilitas dan dukungan yang luas. Pilihan format logging yang tepat tergantung pada kebutuhan aplikasi, kompleksitas data log, dan preferensi pengembang.

--

--