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

我怎么能打印一个消息到错误控制台,最好包括一个variables?

例如,像这样的东西:

print('x=%d', x); 

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

 console.error(message); //gives you the red errormessage console.log(message); //gives the default message console.warn(message); //gives the warn message with the exclamation mark in front of it console.info(message); //gives an info message with an 'i' in front of the message 

您还可以将CSS添加到日志消息中:

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

例外logging到JavaScript控制台中。 你可以使用,如果你想保持萤火虫禁用。

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

用法:

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

debuggingJavaScript中概述了一种跨浏览器工作的好方法:抛出警报!

这里是一个解决如何打印到浏览器的错误控制台,而不是debugging器控制台的字面问题的解决scheme。 (可能有很好的理由绕过debugging器。)

正如我在关于在错误控制台中抛出错误以获取消息的build议的注释中所指出的,一个问题是这会中断执行的线程。 如果你不想中断这个线程,你可以把这个错误放在一个单独的线程中,一个使用setTimeout创build的线程。 因此,我的解决scheme(原来是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方法的第二个参数是文件名,这是一个空string,用于防止输出无用的文件名和行号。 可以获取调用者函数,但不能以简单的浏览器方式。

如果我们可以显示带有警告或消息图标而不是错误图标的消息,那将是非常好的,但是我找不到这样做的方法。

使用投掷的另一个问题是它可能被一个封闭的try-catch抓住并扔掉,并且把throw放在一个单独的线程中也避免了这个障碍。 但是,还有另外一种方法可以捕获错误,即如果将window.onerror处理程序replace为执行不同的处理程序。 帮不了你。

如果你使用Safari ,你可以写

 console.log("your message here"); 

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

如果您使用的是Firebug,并且需要支持IE,Safari或Opera,则Firebug Lite会向这些浏览器添加console.log()支持。

要真正回答这个问题:

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

而不是错误,你也可以使用信息,日志或警告。

关于上面提到的“throw()”的说明。 它似乎完全停止页面的执行(我在IE8中检查),所以它不是非常有用的日志logging“进行中的进程”(如跟踪某个variables…)

我的build议可能是在你的文档中的某个地方添加一个textarea元素,并改变(或追加)它的 (这将改变它的文本),以便在需要时logging信息。

WebKit Web Inspector也支持Firebug的控制台API(仅仅是Dan的答案的一个小增加)。

与往常一样,Internet Explorer是滚轴滑板上的大象,仅仅使用console.log()就可以阻止你。

jQuery的日志可以很容易地适应,但是到处都是一个痛苦的东西。 如果你使用jQuery的一个解决scheme是最后把它放到你的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; } } 

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

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

在这种情况下,对象将是你的错误string

 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 To Print Error:- console.error('x=%d', x); 
 console.log("your message here"); 

为我工作..我正在寻找这..我用Firefox。 这是我的脚本。

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

适用于Firefox和Chrome。

最简单的方法是:

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

这不会打印到控制台,但是会打开一条警报popup消息,对于某些debugging可能有用:

做就是了:

 alert("message");