{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 08:59:46"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:00:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 545 ms.","timestamp":"2025-10-27 09:00:01"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:01:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 15 ms.","timestamp":"2025-10-27 09:01:00"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:01:23"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:02:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 137 ms.","timestamp":"2025-10-27 09:02:00"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:02:52"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:03:02"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:03:02"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:03:02"}
{"level":"error","message":"[Changelog] Gagal membaca atau merender file changelog ENOENT: no such file or directory, open 'E:\\dev\\nodejs\\CHANGELOG.md'","stack":"Error: ENOENT: no such file or directory, open 'E:\\dev\\nodejs\\CHANGELOG.md'\n    at Object.readFileSync (node:fs:449:20)\n    at showChangelog (E:\\dev\\nodejs\\invoiceGenerate\\controllers\\invoiceController.js:665:40)\n    at Layer.handle [as handle_request] (E:\\dev\\nodejs\\invoiceGenerate\\node_modules\\.pnpm\\express@4.16.4\\node_modules\\express\\lib\\router\\layer.js:95:5)\n    at next (E:\\dev\\nodejs\\invoiceGenerate\\node_modules\\.pnpm\\express@4.16.4\\node_modules\\express\\lib\\router\\route.js:137:13)\n    at Route.dispatch (E:\\dev\\nodejs\\invoiceGenerate\\node_modules\\.pnpm\\express@4.16.4\\node_modules\\express\\lib\\router\\route.js:112:3)\n    at Layer.handle [as handle_request] (E:\\dev\\nodejs\\invoiceGenerate\\node_modules\\.pnpm\\express@4.16.4\\node_modules\\express\\lib\\router\\layer.js:95:5)\n    at E:\\dev\\nodejs\\invoiceGenerate\\node_modules\\.pnpm\\express@4.16.4\\node_modules\\express\\lib\\router\\index.js:281:22\n    at Function.process_params (E:\\dev\\nodejs\\invoiceGenerate\\node_modules\\.pnpm\\express@4.16.4\\node_modules\\express\\lib\\router\\index.js:335:12)\n    at next (E:\\dev\\nodejs\\invoiceGenerate\\node_modules\\.pnpm\\express@4.16.4\\node_modules\\express\\lib\\router\\index.js:275:10)\n    at Function.handle (E:\\dev\\nodejs\\invoiceGenerate\\node_modules\\.pnpm\\express@4.16.4\\node_modules\\express\\lib\\router\\index.js:174:3)","timestamp":"2025-10-27 09:03:10"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:04:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 71 ms.","timestamp":"2025-10-27 09:04:00"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:04:15"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:04:19"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:04:19"}
{"level":"info","message":"Index Page Index Page di akses oleh ::ffff:127.0.0.1","timestamp":"2025-10-27 09:04:39"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:05:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 54 ms.","timestamp":"2025-10-27 09:05:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:06:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 22 ms.","timestamp":"2025-10-27 09:06:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:07:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 25 ms.","timestamp":"2025-10-27 09:07:00"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:07:10"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:07:13"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:07:13"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:07:47"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:07:50"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:07:50"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:07:54"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:07:59"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:07:59"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:08:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 83 ms.","timestamp":"2025-10-27 09:08:00"}
{"level":"info","message":"SHUTDOWN_SIGNAL_RECEIVED Menerima sinyal SIGINT (Ctrl+C). Melakukan graceful shutdown.","timestamp":"2025-10-27 09:08:24"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:20:02"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:20:05"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:20:05"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:20:22"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:21:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 22 ms.","timestamp":"2025-10-27 09:21:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:22:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 21 ms.","timestamp":"2025-10-27 09:22:01"}
{"level":"info","message":"SHUTDOWN_SIGNAL_RECEIVED Menerima sinyal SIGINT (Ctrl+C). Melakukan graceful shutdown.","timestamp":"2025-10-27 09:22:55"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:22:59"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:23:03"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:23:03"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:23:03"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:23:54"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:24:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 19 ms.","timestamp":"2025-10-27 09:24:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:25:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 39 ms.","timestamp":"2025-10-27 09:25:00"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:25:54"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:25:58"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:25:58"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:26:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 116 ms.","timestamp":"2025-10-27 09:26:00"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:26:27"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:27:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 30 ms.","timestamp":"2025-10-27 09:27:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:28:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 54 ms.","timestamp":"2025-10-27 09:28:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:29:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 14 ms.","timestamp":"2025-10-27 09:29:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:30:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 62 ms.","timestamp":"2025-10-27 09:30:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:31:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 34 ms.","timestamp":"2025-10-27 09:31:00"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:31:26"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:31:29"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:31:29"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:31:41"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:32:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 27 ms.","timestamp":"2025-10-27 09:32:00"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:32:13"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:33:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 17 ms.","timestamp":"2025-10-27 09:33:00"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:33:28"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:33:32"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:33:32"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:33:39"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:33:43"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:33:43"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:33:46"}
{"level":"error","message":"[CORS] Origin http://localhost:9000 not allowed by CORS policy.","timestamp":"2025-10-27 09:34:00"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:34:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 41 ms.","timestamp":"2025-10-27 09:34:00"}
{"level":"error","message":"[CORS] Origin http://localhost:9000 not allowed by CORS policy.","timestamp":"2025-10-27 09:34:03"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:34:05"}
{"level":"error","message":"[CORS] Origin http://localhost:9000 not allowed by CORS policy.","timestamp":"2025-10-27 09:34:07"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:35:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 60 ms.","timestamp":"2025-10-27 09:35:00"}
{"level":"info","message":"[Health Check] Database connection successful.","timestamp":"2025-10-27 09:35:12"}
{"level":"info","message":"[Health Check] PDF directory './public/invoice' is writable.","timestamp":"2025-10-27 09:35:12"}
{"level":"info","message":"[Health Check] Cron Job is running and recently executed.","timestamp":"2025-10-27 09:35:12"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:35:49"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:36:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 16 ms.","timestamp":"2025-10-27 09:36:00"}
{"level":"info","message":"Index Page Index Page di akses oleh ::1","timestamp":"2025-10-27 09:36:07"}
{"level":"info","message":"[Cron Job] Memulai pengiriman invoice yang belum terkirim.","timestamp":"2025-10-27 09:37:00"}
{"level":"info","message":"[Cron Job] Pengiriman invoice selesai. Durasi: 63 ms.","timestamp":"2025-10-27 09:37:00"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:37:02"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:37:06"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:37:06"}
{"level":"info","message":"LOGGER_INITIALIZED Winston logger berhasil diinisialisasi.","timestamp":"2025-10-27 09:37:08"}
{"level":"info","message":"PROCESS_HANDLERS_INITIALIZED Global process handlers telah diinisialisasi.","timestamp":"2025-10-27 09:37:12"}
{"level":"info","message":"[Internal Health Monitor] Monitor internal diaktifkan. Pengecekan akan dilakukan setiap 100 detik.","timestamp":"2025-10-27 09:37:12"}
