跳到主要内容

认识

2024年12月10日
柏拉文
越努力,越幸运

一、认识


Winston 在性能上相对较慢,因为它提供了许多功能和灵活性,但这些额外的功能带来了性能开销。对于高性能、高并发的应用场景,Pino 更适合;Winston 更注重灵活性。

Winston 默认是同步输出,导致性能较低。通过自定义格式化(如时间戳、颜色等)增加了日志输出的性能开销。支持插件和传输层,灵活性较高,但需要配置和维护。

二、准备


npm install winston

三、语法


const Koa = require("koa");
const winston = require("winston");
const KoaRouter = require("koa-router");

const port = 3000;
const app = new Koa();
const router = new KoaRouter();

const logger = winston.createLogger({
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: "combined.log" }),
],
});

router.get("/", (ctx) => {
logger.info("Hello again distributed logs");

ctx.body = {
code: 200,
message: "成功!",
};
});

app.use(router.routes());

app.listen(port, () => {
console.log(`Service is running ${port}`);
});