Node.js中Koa2在控制台输出请求日志的方法

Koa2真的是个很轻量的框架,轻量到路由都作为了模块单独了出来,Koa2也没有日志功能,如果我们需要有一些请求的日志和时间,我们就需要引入日志中间件

引入时间格式化库MomentJS

安装MomentJS
npm install moment --save
简单格式化时间

使用YYYY-MM-DD HH:mm:ss代表 年-月-日 时-分-秒(24小时制)

 console.log(Moment().format('YYYY-MM-DD HH:mm:ss'));

输出

2019-05-02 20:34:05

使用Koa2日志中间件

安装koa-logger
npm install koa-logger --save

如果需要使用TS,需要安装TS类型声明

npm install @types/koa-logger --save
简单使用koa-logger
const Koa = require("koa");                               
const Koa_Logger = require("koa-logger");                 // 日志中间件
const Koa_Router = require("koa-router");

// 实例化
const app = new Koa();                              
const logger = Koa_Logger();     
const router = new Koa_Router();

router.get("/",async (ctx)=>{
    ctx.body = "Hellow Koa";
});

// 使用中间件     
app.use(logger);                                    // 日志输出

app.use(router.routes());                            // 路由

// 启动app
app.listen(3000);                                   // 设置监听端口
// 启动标识
console.log("Koa运行在:http://127.0.0.1:3000");  

访问http://localhost:3000/,页面显示

1

控制台输出
2

给请求日志添加时间

改变一下logger的调用方式,加入moment格式化后的时间

const Koa = require("koa");                               
const Koa_Logger = require("koa-logger");                 // 日志中间件
const Koa_Router = require("koa-router");
const Moment = require("moment");
// 实例化
const app = new Koa();                              
const logger = Koa_Logger((str) => {                // 使用日志中间件
    console.log(Moment().format('YYYY-MM-DD HH:mm:ss')+str);
});     
const router = new Koa_Router();

router.get("/",async (ctx)=>{
    ctx.body = "Hellow Koa";
});

// 使用中间件     
app.use(logger);                                    // 日志输出

app.use(router.routes());                            // 路由

// 启动app
app.listen(3000);                                   // 设置监听端口
// 启动标识
console.log("Koa运行在:http://127.0.0.1:3000");  

分别访问http://localhost:3000/
、http://localhost:3000/?test
控制台输出如下

3

这样我们就有了一个带时间的请求日志了

你可能感兴趣的:(Node.js中Koa2在控制台输出请求日志的方法)