gpt4 book ai didi

Javascript 结构可轻松提供不同级别的调试代码

转载 作者:行者123 更新时间:2023-11-30 16:50:39 25 4
gpt4 key购买 nike

与许多项目一样,我的 [研究] 计划正在变得非常庞大。我也在努力完成工作和教学之间的斗争。我希望有不同数量的 console.log() 语句,只需更改全局变量或类似的东西。这类似于在某些终端/控制台命令中键入 --v(或 VERBOSE 的类似命令)以获得有关进程中发生的事情的额外帮助。这样对于正常工作,我可以将级别设置为Normal,但是当我让学生参与项目时,我可以让他们将级别设置为Verbose,这样他们可以看到正在发生的事情以帮助 catch 进度,因为并非所有学生都熟悉 JS 及其幽默:)

JS 已经有 console.log()console.warn()console.error() 用于不同的消息强度代码,但我正在寻找类似于 normal.console.log()30ThousandFootHighLevel.console.log()giveMeEverythingYouGot.console 的内容.log() 这样我就可以在整个应用程序中包含适当的级别。然后,我会在某些全局范围内,比如 place,说一些类似 consoleLogLevel = 3; 的东西。//0-N,N 是最冗长的

如果我不必写每个日志级别,而是当 giveMeEverythingYouGot.console.log() 显示所有 [lower/inclusive/previous] 级别时,我会加分。

有节点包吗?硬代码示例?这是一个基本的 PLNKR设置以帮助提供建议。谢谢!

var consoleLogArray = ['NORMAL','MIDDLE','VERBOSE'];
var consoleLogLevel = 3;

$(document).ready( function(){
// Got to let me know we are starting in some cases
console.log('VERBOSE MERSSAGE: Started');
// Some Basic code
var x = 5;
var y = 10;
var check = 2;
if (!x+y === 14){
// This should be a verbose log
// This should only show in Verbose setting
console.error('We have a variable assignment problem')
}
if(x/y === check){
// This should be a middle level
// This should only show in Verbose setting or Middle Setting
console.log('Yup, 10 divided by 5 is still 2...')
}
// This should be a normal level
// This should show in Normal, Middle, and Verbose settings
console.log('Finished with no errors!');
})

最佳答案

我不明白您如何为这些日志消息分配 verbosemiddlenormal。但我假设您在编写日志语句时知道您希望它达到哪个级别。

那么,这个怎么样?

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 对象来添加任意多个级别。

每个日志记录函数(verbosedebugwarn)的功能几乎相同。我相信您可以编写一些生成这些函数的高级函数。让我们把它留给读者作为练习。 :)

关于Javascript 结构可轻松提供不同级别的调试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30576829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com