如何在javascript中扩展控制台功能?
当前,当我们编写如何在javascript中扩展控制台功能?,javascript,jquery,Javascript,Jquery,当前,当我们编写console.log时,它会打印msg。我们可以扩展控制台功能吗?我们可以用msg打印当前时间。我试过这样做 (function () { var old_console =console; var newConsole = newconsole; function newconsole() { var d =new Date(); old_console.apply(this,argument
console.log时,它会打印msg
。我们可以扩展控制台功能吗?我们可以用msg
打印当前时间
。我试过这样做
(function () {
var old_console =console;
var newConsole = newconsole;
function newconsole() {
var d =new Date();
old_console.apply(this,arguments);
return d.getMilliseconds();
}
})();
但它不起作用。我们如何打印?创建自己的日志记录方法而不是控制台,并使用它在console.log中输出任何格式。
如果您想知道控制台中发生的所有事情的时间戳,那么只需从控制台设置中启用时间戳
看
我刚刚在jsfiddle中启用了这个选项并得到了这个结果
当我将鼠标悬停在它上面时,它还会显示日期和时间。
您可以简单地看到它与
/*启用控制台设置以显示时间戳并运行此代码*/
console.log('abc')代码>这在Chrome inspector中起作用:
console.log = function(msg) {
var d = new Date();
return d.getMilliseconds() + ' ' + msg;
}
console.log('Hi');
只需为console.log创建一个包装器,其中还包括一个调用new Date()
,该调用负责打印当前日期以及所需的日志消息。您想要增强console.log
,所以只需处理该方法,而不是整个console
对象
(function (console) {
var old_log = console.log;
console.log = function() {
var d = new Date();
old_log.apply(console, [d].concat(arguments));
return d.getMilliseconds();
}
})(window.console);
如果需要,可以对console.error()
,console.info()
,console.log()
,console.warn()
等执行相同的操作。以下是一种有效的方法:
(function (console, methods) {
var old = {};
methods.forEach(function(method) {
if(console[method]) {
old[method] = console[method];
console[method] = function() {
var d = new Date();
old[method].apply(console, [d].concat(arguments));
return d.getMilliseconds();
}
}
});
})(window.console, ['error', 'info', 'log', 'warn']);
经过适当的考虑,您可能也可以这样做。什么不起作用?关于console.log(new Date()+“and message”)
?@Denny我只举一个例子,说明我将如何发送它发出的mesgdate@Halcyon换句话说,当我键入console.log('abc')时.it打印
abc`当前时间可能重复您正在覆盖函数..未扩展..:(您现在只能传递可串参数。这是严重的功能退化。这是最好的示例不-这是最好的示例:使用此示例,我尝试过请共享fiddle这是您的fiddle mate。我刚刚打开控制台并在控制台视图中启用时间戳。请尝试。请参阅我只是在所有控制台中附加ddd
,但在t运行时不工作。)他的代码可以回答这个问题,提供关于如何和/或为什么解决问题的额外上下文,从而提高答案的长期价值。
(function (console, methods) {
var old = {};
methods.forEach(function(method) {
if(console[method]) {
old[method] = console[method];
console[method] = function() {
var d = new Date();
old[method].apply(console, [d].concat(arguments));
return d.getMilliseconds();
}
}
});
})(window.console, ['error', 'info', 'log', 'warn']);