我尝试为我的所有请求添加时间戳。我为此使用了 morgan ,并且如下所示,
if (process.env.NODE_ENV === 'development') {
// Enable logger (morgan)
app.use(morgan('common'));
}
这导致我的控制台为,
::ssss:197.7.8.1 - - [Fri, 28 Apr 2017 00:28:29 GMT] "GET /assets/jqwidgets/styles/images/icon-right.png HTTP/1.1" 200 143
::ssss:197.7.8.1 - - [Fri, 28 Apr 2017 00:28:29 GMT] "GET /assets/jqwidgets/styles/images/icon-left.png HTTP/1.1" 200 139
::ssss:197.7.8.1- - [Fri, 28 Apr 2017 00:28:31 GMT] "GET /admin-get-users
从上面的结果中,我得到了时间戳以及互联网地址(::ssss:197.7.8.10,这是我不想要的。有人可以建议我帮忙吗。如果建议的任何新模块也是一个很好的解决方案对我来说。谢谢。
最佳答案
您询问如何使用 Morgan 而不是expressjs 获取时间戳。您可能应该适本地重新标记问题。
无论如何,morgan offers some predefined tokens您在构造对象时使用它来设置它输出的字符串。如果您仅对时间戳感兴趣,请使用app.use(morgan(':date[format]'));
来构造对象,其中format是clf
(打印如“27/Apr/2017:12:00:00 +0000”,iso
(打印如“2017-04-27T12:00:00.000Z”) ,或 web
(输出如“Thu, 27 Apr 2017 12:00:00 GMT”)。还存在其他标记,例如用于响应的 HTTP 状态代码的 :status
或 :url
作为请求的 url。如果您发现您有兴趣记录这些内容。在您发表评论后,您似乎有兴趣,所以请尝试 app.use(morgan(':date [clf] ":method :url"'));
或 app.use(morgan(':date[clf] ":url"'));
。
if (process.env.NODE_ENV === 'development') {
// Enable logger (morgan)
app.use(morgan(':date[clf] ":method :url"')); // prints date in same format as original Q
}
关于javascript - 如何在express js中添加时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43670082/