Code ví dụ NodeJS Log4j, ghi log với package log4js

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

Code ví dụ NodeJS Log4j, ghi log với package log4js

Cài đặt package log4js

npm i log4js

Code ví dụ NodeJS Log4j, ghi log với package 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 log4js
  • log4js.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.log vớ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:

Code ví dụ NodeJS Log4j, ghi log với package log4js

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.

Code ví dụ NodeJS Log4j, ghi log với package log4js

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

stackjava.com