如何将消息打印到错误控制台?

我如何打印消息到错误控制台,最好包括一个变量?

例如,像这样:

print('x=%d', x);
947342 次浏览

安装Firebug,然后你可以使用console.log(...)console.debug(...)等(更多信息请参阅的文档)。

如果你正在使用Firebug并且需要同时支持IE、Safari或Opera, Firebug Lite会为这些浏览器添加console.log()支持。

WebKit Web检查器也支持Firebug的控制台API(只是对丹的回答的一个小添加)。

异常被记录到JavaScript控制台。如果你想禁用Firebug,你可以使用它。

function log(msg) {
setTimeout(function() {
throw new Error(msg);
}, 0);
}

用法:

log('Hello World');
log('another message');

关于上面提到的'throw()'的注意事项。它似乎完全停止了页面的执行(我在IE8中检查了),所以它对于记录“正在进行的进程”并不是很有用(比如跟踪某个变量……)

我的建议可能是在你的文档中添加一个文本区域元素,并在需要时更改(或追加)它的价值(这将更改它的文本)以记录信息……

下面是如何将消息打印到浏览器的错误控制台(而不是调试器控制台)的解决方案。(可能有很好的理由绕过调试器。)

正如我在关于建议抛出错误以在错误控制台中获取消息的注释中所指出的,一个问题是这将中断执行线程。如果不想中断线程,可以在使用setTimeout创建的单独线程中抛出错误。因此,我的解决方案(这是Ivo Danihelka的一个详细阐述):

var startTime = (new Date()).getTime();
function logError(msg)
{
var milliseconds = (new Date()).getTime() - startTime;
window.setTimeout(function () {
throw( new Error(milliseconds + ': ' + msg, "") );
});
}
logError('testing');

我以毫秒为单位包含了从开始时间到现在的时间,因为超时可能会打乱您期望看到消息的顺序。

Error方法的第二个参数是文件名,这里是一个空字符串,以防止输出无用的文件名和行号。可以获得调用方函数,但不能以简单的独立于浏览器的方式获得。

如果我们可以用警告或消息图标而不是错误图标来显示消息,那就太好了,但我找不到一种方法来做到这一点。

使用throw的另一个问题是,它可能会被一个封闭的try-catch捕获和丢弃,将throw放在一个单独的线程中也可以避免这个障碍。然而,还有另一种方法可以捕获错误,即如果窗口。Onerror处理程序被替换为执行不同操作的处理程序。我帮不了你。

像往常一样,Internet Explorer是穿旱冰鞋的大象,它阻止你只是简单地使用console.log()

jQuery的日志可以很容易地适应,但在任何地方都必须添加它是一种痛苦。如果你正在使用jQuery,一个解决方案是把它放在你的jQuery文件的最后,首先缩小:

function log()
{
if (arguments.length > 0)
{
// Join for graceful degregation
var args = (arguments.length > 1) ? Array.prototype.join.call(arguments, " ") : arguments[0];


// This is the standard; Firebug and newer WebKit browsers support this.
try {
console.log(args);
return true;
} catch(e) {
// Newer Opera browsers support posting erros to their consoles.
try {
opera.postError(args);
return true;
}
catch(e)
{
}
}


// Catch all; a good old alert box.
alert(args);
return false;
}
}

如果你使用Safari,你可以写

console.log("your message here");

它就出现在浏览器的控制台上。

console.error(message); // Outputs an error message to the Web Console
console.log(message); // Outputs a message to the Web Console
console.warn(message); // Outputs a warning message to the Web Console
console.info(message); // Outputs an informational message to the Web Console. In some browsers it shows a small "i" in front of the message.

你也可以添加CSS:

console.log('%c My message here', "background: blue; color: white; padding-left:10px;");

更多信息可以在这里找到:https://developer.mozilla.org/en-US/docs/Web/API/console

这不会打印到控制台,但会打开一个警告弹出窗口,其中包含你的消息,这可能对一些调试有用:

只做:

alert("message");
console.log("your message here");

为我工作…我正在找这个..我用火狐浏览器。 这是我的脚本。

 $('document').ready(function() {
console.log('all images are loaded');
});

适用于火狐和Chrome浏览器。

要真正回答这个问题:

console.error('An error occurred!');
console.error('An error occurred! ', 'My variable = ', myVar);
console.error('An error occurred! ' + 'My variable = ' + myVar);

除了error,你还可以使用info, log或warn。

访问https://developer.chrome.com/devtools/docs/console-api获取完整的控制台api参考

    console.error(object[Obj,....])\

在本例中,object将是错误字符串

最简单的方法是:

console.warn("Text to print on console");

function foo() {
function bar() {
console.trace("Tracing is Done here");
}
bar();
}


foo();

console.log(console); //to print console object
console.clear('console.clear'); //to clear console
console.log('console.log'); //to print log message
console.info('console.info'); //to print log message
console.debug('console.debug'); //to debug message
console.warn('console.warn'); //to print Warning
console.error('console.error'); //to print Error
console.table(["car", "fruits", "color"]);//to print data in table structure
console.assert('console.assert'); //to print Error
console.dir({"name":"test"});//to print object
console.dirxml({"name":"test"});//to print object as xml formate

To Print Error:- console.error('x=%d', x);

console.log("This is the outer level");
console.group();
console.log("Level 2");
console.group();
console.log("Level 3");
console.warn("More of level 3");
console.groupEnd();
console.log("Back to level 2");
console.groupEnd();
console.log("Back to the outer level");

使用es6语法,你可以使用:

console.log(`x = ${x}`);

为了回答你的问题,你可以使用ES6的特性,

var var=10;
console.log(`var=${var}`);