Code ví dụ NodeJS Log4j, ghi log với package log4js
(Xem thêm: Tự học Node.js qua ví dụ)
Module log4js
log4js là một module (package) hỗ trợ việc ghi log. Nó khá giống với thư viện log4j trong java.
Cài đặt module log4js:
npm i log4js
Include module winston vào project node.js:
var log4js = require("log4js");
Code ví dụ Node.js log4js
Khởi tạo project:
npm init -y
Cài đặt package log4js
npm i log4js
Tạo file index.js như sau:
const log4js = require("log4js");
log4js.configure({
"appenders": {
"application": {
"type": "console"
},
"file": {
"type": "file",
"filename": "/logs/application.log",
"compression": true,
"maxLogSize": 10485760,
"backups": 100
}
},
"categories": {
"default": {
"appenders": [
"application",
"file"
],
"level": "info"
}
}
});
const logger = log4js.getLogger();
logger.trace("stackjava.com");
logger.debug("stackjava.com");
logger.info("stackjava.com");
logger.warn("stackjava.com");
logger.error("stackjava.com");
logger.fatal("stackjava.com");
Trong đó:
const log4js = require("log4js");: khởi tạo đối tượng log4jslog4js.configure: cấu hình log4js, ở đây mình cấu hình 2 kiểu log là log ra file và log ra console với level là info. Riêng phần log ra file thì cấu hình ghi log ra file/logs/application.logvới kích thước là 10485760 byte, nếu vượt quá thì sẽ tạo file mới (không quá 100 file)
Cấu trúc project:
Chạy file index.js
node index.js
Kết quả:
Phần log trace và debug không được ghi ra vì mình chọn level là info.
File log được ghi ra:
[2021-05-29T17:31:13.243] [INFO] default - stackjava.com [2021-05-29T17:31:13.247] [WARN] default - stackjava.com [2021-05-29T17:31:13.247] [ERROR] default - stackjava.com [2021-05-29T17:31:13.247] [FATAL] default - stackjava.com [2021-05-29T17:31:25.420] [INFO] default - stackjava.com [2021-05-29T17:31:25.423] [WARN] default - stackjava.com [2021-05-29T17:31:25.424] [ERROR] default - stackjava.com [2021-05-29T17:31:25.424] [FATAL] default - stackjava.com
Nếu bạn muốn sử dụng để ghi log ở file khác thì chỉ cần export biến logger trong file index.js ra là được
Okay, Done!
Download code ví dụ trên tại đây hoặc tại: https://github.com/stackjava/nodejs-log4js
References: https://www.npmjs.com/package/log4js



