生产环境中的登录最佳实践?

15

在生产环境中是否可以使用morgan作为记录器,还是应该将其丢弃并仅在开发模式下使用?
记录生产环境日志的最佳实践是什么?


1
我认为在生产环境中使用morgan是可以的,因为它会记录日志文件,如果发生错误,你可以从日志文件中获取错误信息。 - NewUser
@NewUser,所以在生产模式下记录文件比控制台更好? - Terry Djony
是的,我认为是这样。那是我的个人意见。 - NewUser
现代时髦的云托管Web应用程序通常会将日志写入stdout。请参见此处。记录的级别在开发和生产环境中通常也不同。 - Mika Sundland
2
我使用 pm2pm2-logrotate,然后在代码中随处使用 console.logconsole.error,让 PM2 处理日志。这是一个基于项目的观点、偏好和需求的问题。 - damd
1个回答

10

没错!在生产模式下使用Morgan作为记录器是可以的。

如果我能够概括回答你的问题,恰当的做法是在生产环境中记录尽可能多的细节。这样能确保你的服务器日志记录尽可能多的相关信息。毕竟,只有你和具有服务器访问权限的人才能看到这些日志,对吧?

我的策略是在生产环境中使用'combined'模式,它比较详细;而在开发环境中则使用'dev'模式,它更为简洁。

你可以使用环境变量或其他方法轻松切换它们。例如:

if (app.get('env') === 'production') {
  app.use(logger('combined'));
} else {
  app.use(logger('dev'));
}

我通常会配置的另一件事是将日志写入外部文件。毫无疑问,这在生产环境中非常有用。

关于Morgan,就介绍到这里。如果你想知道最好的日志记录方式,那么这是另一个问题,已经有答案了


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接