与许多项目一样,我的[研究]计划正在变得越来越大。我还在完成工作和教学之间的斗争。我希望有不同数量的console.log()
语句,只需更改全局变量或类似变量。这类似于在某些终端/控制台命令中键入--v
(或类似于VERBOSE)以获得进程中正在进行的操作的额外帮助。这种方式对于正常工作,我的级别可以是Normal
,但是当我让学生进入项目时,我可以让他们将级别设置为Verbose
,这样他们就可以看到发生了什么帮助赶上,因为并非所有学生都熟悉JS及其幽默:)
JS已经为console.log()
,console.warn()
和console.error()
提供了代码中不同的消息强度,但我正在寻找类似于normal.console.log()
,{{ 1}}和30ThousandFootHighLevel.console.log()
所以我可以在整个应用程序中包含适当的级别。那么,我会在像地方这样的全球范围内说giveMeEverythingYouGot.console.log()
。
consoleLogLevel = 3; // 0-N with N being the most verbose
显示所有[较低/包含/之前]级别时,奖励积分。
任何节点包?硬代码示例? 这是一个基本的PLNKR设置,可以帮助您提供建议。谢谢!
giveMeEverythingYouGot.console.log()
答案 0 :(得分:2)
我不明白您如何将verbose
,middle
和normal
分配给这些日志消息。但是,当你在日志语句中写下你想要的级别时,我会假设你知道。
那么,这个怎么样?
log = {
order: {
"verbose": 0,
"debug": 1,
"warn": 2
},
log_level: "warn",
verbose: function (arguments) {
if (this.order[this.log_level] <= this.order["verbose"]) {
console.log(arguments);
}
},
debug: function (arguments) {
if (this.order[this.log_level] <= this.order["debug"]) {
console.log(arguments);
}
},
warn: function (arguments) {
if (this.order[this.log_level] <= this.order["warn"]) {
console.log(arguments);
}
}
}
log.verbose("This is verbose"); // doesn't print
log.debug("This is debug"); // doesn't print
log.warn("This is warn"); // prints
log.log_level = "verbose"; // change what level of messages we want
log.verbose("This is verbose"); // prints
log.debug("This is debug"); // prints
log.warn("This is warn"); // prints
这样日志语句就是语义的。要发送详细日志,请使用该名称调用函数:log.verbose
。您可以通过扩展order
对象来添加任意多个级别。
每个日志记录功能(verbose
,debug
,warn
)的功能几乎完全相同。我确定你可以编写一些生成这些函数的高级函数。让我们把它作为读者的练习。 :)