谷歌对我没有帮助,因为搜索“console.debug”只会出现一堆带有“控制台”和“调试”字样的页面。
我想知道console.log()和console.debug()之间的区别是什么。是否有某种方法可以使用一堆console.debug()语句,然后只需按下开关就可以轻松关闭所有调试语句,使其不被发送到控制台(比如在启动站点之后)?
谷歌对我没有帮助,因为搜索“console.debug”只会出现一堆带有“控制台”和“调试”字样的页面。
我想知道console.log()和console.debug()之间的区别是什么。是否有某种方法可以使用一堆console.debug()语句,然后只需按下开关就可以轻松关闭所有调试语句,使其不被发送到控制台(比如在启动站点之后)?
当前回答
我知道它很旧了,但是继续@Espen的回答,你可以分离职责,使用console.log作为你的常规日志,这些日志也应该出现在生产中,而对于console.debug,你可以这样做:
if (env === 'production') {
console.debug = function () {};
}
这将覆盖console.debug并且它不会打印任何东西。 这样,您就不必担心在prod环境中应该出现的东西。
其他回答
如果你想在产品完成后禁用日志记录功能,你可以重写console.debug()函数或创建另一个自定义函数。
console.debug = function() {
if(!console.debugging) return;
console.log.apply(this, arguments);
};
console.debugging = true;
console.debug('Foo', {age:41, name:'Jhon Doe'});
Foo{年龄:41岁,名字:“Jhon Doe”}
console.debugging = false;
console.debug('Foo', {age:26, name:'Jane Doe'});
没有输出
然而,我还没有找到一种方法来为输出着色。
我知道它很旧了,但是继续@Espen的回答,你可以分离职责,使用console.log作为你的常规日志,这些日志也应该出现在生产中,而对于console.debug,你可以这样做:
if (env === 'production') {
console.debug = function () {};
}
这将覆盖console.debug并且它不会打印任何东西。 这样,您就不必担心在prod环境中应该出现的东西。
从浏览器文档中,log,debugand info方法在实现上是相同的,但颜色和图标不同
https://jsfiddle.net/yp4z76gg/1/
Console.info、console.debug方法与console.log相同。
console.log打印语句 console.info黑色文本,带有蓝色的“i”图标 蓝色文本
文档:
铬 即 边缘 火狐 Safari
它们几乎是相同的-唯一的区别是调试消息在Chrome的最新版本中默认是隐藏的(你必须在Devtools的顶部栏中将日志级别设置为Verbose,同时在控制台查看调试消息;默认情况下,日志消息是可见的)。