认识
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}`);
});