摩根记录仪无法正确记录日期或时间

时间:2018-08-01 17:34:38

标签: node.js date express morgan moment-timezone

我的node.js应用程序中的记录器未正确记录日期或时间。我将morgan用作日志记录模块,并使用moment-timezone正确记录时区中的日期和时间(太平洋标准时间)。昨天,它按照我设置的格式记录日期和时间,但今天不是。

以下是使用moment-timezone的摩根日期令牌的代码:

data.root.column1.column2.field

这是我在morgan.format()中使用日期令牌的代码:

  model = cp_model.CpModel()

  start = 7
  end = 20
  x = model.NewIntVar(start , end - 1, "x")
  y = model.NewIntVar(start , end - 1, "y")
  # Create the constraints.
  model.Add(x != y)

昨天,我的请求使用以下格式记录:

[2018-07-31,14:57 pm],hoopla,:: 1,401,104.144毫秒

今天,一切都这样记录:

[YYYY-MM-DD,HH:mm a],hoopla,:: 1,401,45.995 ms

我所做的唯一更改是向应用程序添加了新路由,但是每个日志记录中间件都根据使用的路由将日志记录到一个单独的文件中。有谁知道为什么我的日期令牌不再显示日期?

2 个答案:

答案 0 :(得分:1)

MomentJS记录时区的morgan.token('date'...部分对我来说似乎还不错!

我敢打赌这是自定义标记格式的语法错误。根据{{​​3}},如果不需要传递参数,则可以简单地将自定义标记格式与分列一起使用,例如:date。因此,只需尝试:

morgan.format('logFormat', ':date, :resource, :remote-addr, :status, :response-time ms');

答案 1 :(得分:0)

这个问题帮助我解决了我的问题。谢谢!

这对我来说很合适:

morgan.token('date', (req, res, tz) => {
return moment().tz(tz).format('YYYY-MM-DD HH:mm:ss');
})
morgan.format('myformat', :date[Asia/Taipei] | :method | :url | :response-time ms');
    
app.use(morgan('myformat'))
相关问题