nodejs的express框架写应用,其中用到了morgan日志模块。下面是其中的一种格式设置方式:
morgan.format('combined', ':remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"')
其中的日期数据:date格式有三种:clf web iso
combined:
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"
修改默认时区: 通过morgan.token()
自定义token,然后将自定义的token,加入自定义的format中即可。
var express = require('express');
var app = express();
var morgan = require('morgan');
// 自定义token
morgan.token('localDate',function getDate(req) {
let date = new Date();
return date.toLocaleString()
})
// 自定义format,其中包含自定义的token
morgan.format('combined', ':remote-addr - :remote-user [:localDate]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"');
// 使用自定义的format
app.use(morgan('combined'));
app.use(function(req, res, next){
res.send('ok');
});
app.listen(3000);
输出:
::1 - - [2019-6-13 20:17:47]] "GET /api/blog/detail?id=2 HTTP/1.0" 304 - "http://localhost:8080/detail.html?id=2" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"