ctx.logger
Wrapper log dựa trên pino, cung cấp log JSON có cấu trúc hiệu suất cao. Khuyến nghị sử dụng ctx.logger thay vì console để thuận tiện cho việc thu thập và phân tích log.
Kịch bản áp dụng
Tất cả kịch bản RunJS đều có thể sử dụng ctx.logger, dùng để debug, theo dõi lỗi, phân tích performance, v.v.
Định nghĩa kiểu
ctx.logger là engine.logger.child({ module: 'flow-engine' }), tức là child logger pino kèm theo ngữ cảnh module.
Cấp độ log
pino hỗ trợ các cấp độ sau (từ cao đến thấp):
Cách viết khuyến nghị
Khuyến nghị sử dụng dạng level(msg, meta): thông điệp đứng trước, object metadata tùy chọn đứng sau.
pino cũng hỗ trợ level(meta, msg) (object đứng trước) hoặc level({ msg, ...meta }) (object đơn), có thể sử dụng theo nhu cầu.
Ví dụ
Cách dùng cơ bản
Sử dụng child() để tạo child logger
Quan hệ với console
Khuyến nghị sử dụng trực tiếp ctx.logger để có log JSON có cấu trúc. Nếu quen sử dụng console, có thể tương ứng: console.log → ctx.logger.info, console.error → ctx.logger.error, console.warn → ctx.logger.warn.
Định dạng log
pino output JSON có cấu trúc, mỗi log chứa:
level: Cấp độ log (số)time: Timestamp (mili giây)msg: Thông điệp logmodule: Cố định làflow-engine- Các trường tùy chỉnh khác (truyền qua object)
Lưu ý
- Log là JSON có cấu trúc, tiện cho thu thập, tìm kiếm và phân tích
- Child logger được tạo qua
child()cũng khuyến nghị cách viếtlevel(msg, meta) - Một số môi trường runtime (như workflow) có thể sử dụng cách output log khác
Liên quan
- pino — Thư viện log nền tảng

