建立 node log 系統
最簡單的方式寫下 log
var fs = require('fs');
var util = require('util');
var log_file = fs.createWriteStream(__dirname + '/debug.log', {flags: 'w'});
var log2file = function (v) {
log_file.write(util.format(v) + '\n');
};
let aa={a:123, b:456};
log2file(aa);
Winston 套件
const winston = require("winston");
const logger = winston.createLogger({
level: "info",
format: winston.format.json(),
transports: [
new winston.transports.File({
filename: "logs/files.log",
}),
],
});
logger.log({
message: "This is a message with Info log level !",
level: "info",
});
https://www.delftstack.com/zh-tw/howto/node.js/logging-in-node-js/
https://ithelp.ithome.com.tw/articles/10255101
log4js
它的 log 我各人是比較喜歡的
const log4js = require("log4js");
log4js.configure({
appenders: { cheese: { type: "file", filename: "cheese.log" } },
categories: { default: { appenders: ["cheese"], level: "error" } },
});
const logger = log4js.getLogger("cheese");
logger.trace("Entering cheese testing");
logger.debug("Got cheese.");
logger.info("Cheese is Comté.");
logger.warn("Cheese is quite smelly.");
logger.error("Cheese is too ripe!");
logger.fatal("Cheese was breeding ground for listeria.");
可以建立 logs 的 folder
log4js.configure({
appenders: {
multi: {
type: "multiFile",
base: "logs/",
property: "categoryName",
extension: ".log",
},
},
categories: {
default: { appenders: ["multi"], level: "debug" },
},
});
const logger = log4js.getLogger();
logger.debug("I will be logged in logs/default.log");
const otherLogger = log4js.getLogger("cheese");
otherLogger.info("Cheese is cheddar - this will be logged in logs/cheese.log");
也可以不類 categories