Logging & Observability di Next.js
— NextJS, Logging, Observability, Sentry — 1 min read
Logging & Observability di Next.js
Halo teman-teman,
Setelah app live, masalah yang paling sering muncul biasanya bukan di kode, tapi di kurangnya visibility. Tanpa logging dan observability yang baik, debugging production jadi mimpi buruk.
Ini pendekatan yang saya pakai sekarang:
1. Structured Logging
Saya selalu pakai structured log (JSON) daripada console.log biasa.
import { logger } from "@/lib/logger";
logger.info("User created", { userId: user.id, email: user.email, source: "signup-form",});Tools yang sering saya pakai: Pino atau Winston.
2. Error Tracking
Wajib pakai service error tracking:
- Sentry → paling sering saya pakai
- Atau Axiom / Better Stack
Saya capture error + context (user id, request id, action name).
3. Performance Monitoring
- Web Vitals (Core Web Vitals)
- Server timing
- Database query time
Saya pantau lewat Sentry Performance atau Vercel Analytics.
4. Request Tracing
Untuk request yang melewati banyak service, saya pakai trace id biar gampang track alur request dari frontend sampai database.
5. Hal yang Saya Hindari
- Log terlalu banyak (noise)
- Log data sensitif (password, token, dll)
- Hanya mengandalkan
console.logdi production
Prinsip Saya
- Log harus actionable
- Selalu sertakan context
- Pisahkan log development dan production
- Monitor dulu, baru optimize
Kesimpulan
Observability bukan fitur tambahan. Itu fondasi supaya kita bisa sleep nyenyak waktu app sudah production.
Kalau kalian masih hanya mengandalkan console.log, coba mulai dari structured logging + Sentry dulu. Impact-nya langsung terasa.
Pertanyaan buat kalian:
Kalian pakai tools apa untuk logging dan error tracking sekarang?
Sentry, Axiom, atau yang lain?
Cerita di komentar yuk!
— Ady Rahmansyah
Software Engineer | Tech Blogger | Coffee Addict