Skip to content

winston 日志记录与 nest 结合

winston 地址

winston 体验

单纯使用 winston 来为 Nodejs 程序记录日志,没有额外的任何框架或者库

js
const winston = require("winston");

const logger = winston.createLogger({
  level: "info",
  format: winston.format.json(),
  defaultMeta: { service: "user-service" },
  transports: [
    new winston.transports.File({ filename: "error.log", level: "error" }),
    new winston.transports.File({ filename: "combined.log" }),
  ],
});
if (process.env.NODE_ENV !== "production") {
  logger.add(
    new winston.transports.Console({
      format: winston.format.simple(),
    })
  );
}

// 输出
logger.info("-----info");
logger.warn("-----warn");
logger.error("-----error");

运行上述 js 代码,会生成 error.logcombined.log文件,并且在控制台输出 三行结果(上述输出的结果)

控制台输出

txt
info: -----info {"service":"user-service"}
warn: -----warn {"service":"user-service"}
error: -----error {"service":"user-service"}

combined.log内容(errro.log格式类似,但内容不一样,仅包含error)

txt
{"level":"info","message":"-----info","service":"user-service"}
{"level":"warn","message":"-----warn","service":"user-service"}
{"level":"error","message":"-----error","service":"user-service"}