可以有很多console.log()吗?

时间:2019-05-06 12:16:30

标签: node.js logging

我希望我的应用程序具有“调试”模式,该模式可以将发生的所有事件打印到控制台,但是放置许多console.log调用会污染我的源代码,因此拥有这样的调试模式是一种好习惯吗? ?

例如:

function doSomething() {
    // ...
    console.log("Did something");
}

我真的需要这种调试模式,因为在事件上调用了我的函数,并且很难跟踪正在发生的事情,并且有很多可能的情况。

1 个答案:

答案 0 :(得分:2)

两个问题:

  1. 您的日志记录是否会“污染”您的源代码?如果日志记录可以帮助您将来的自己或其他人理解您的代码,则不会。 (当然,不允许您的日志记录产生副作用:否console.log( variable++ )
  2. 控制台日志是否适合投入生产的程序?不,不是。您应该考虑采用日志记录程序包。

我喜欢Winston。还有很多其他好的程序包;希望那些粉丝会写自己的答案。

它使您可以将日志条目发送到文件,* nix计算机的syslog子系统或Windows Events或其他任何地方。如果需要,可以给它们加时间戳,并标识它们来自哪个程序。您的console.log('current value', q)操作变成logger.info('current value', q),而您的console.error()变成logger.error()

对于一个寿命很长的程序(该程序将在几个月后仍将使用),攀登记录器的学习曲线并建立可靠的记录系统无疑是值得您付出麻烦的。如果您的程序将作为较大系统的一部分运行,请询问某人系统的其他部分如何处理日志记录,并使用相同的方案。