Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Outputs a message to the Web Console.

Note: This feature is available in Web Workers.

Syntax

console.log(obj1 [, obj2, ..., objN]);
console.log(msg [, subst1, ..., substN]);

Parameters

obj1 ... objN
A list of JavaScript objects to output. The string representations of each of these objects are appended together in the order listed and output.
msg
A JavaScript string containing zero or more substitution strings. 
subst1 ... substN
JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output.

See Outputting text to the console in the documentation of console for details.

Specifications

Specification Status Comment
Console API
The definition of 'console.log()' in that specification.
Living Standard Initial definition

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) 4.0 (2.0) 8 (Yes) (Yes)
Substitution strings (Yes)
28[1]
? 9.0 (9.0) 10[2] (Yes) (Yes)
Available in workers ? ? 38.0 (38.0) ? ? ?
Feature Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? (Yes) 4.0 (2.0) ? ? ?
Substitution strings ? ? 9.0 (9.0) ? ? ?
Available in workers ? ? 38.0 (38.0) ? ? ?

[1] If a negative value is passed to %d, it will be rounded down to the closest negative integer, so -0.1 becomes -1.

[2] %c is not supported, %d will render as 0 when it is not a number.

Difference with console.dir()

You might ask yourself what's the difference between console.dir() and console.log().

Another useful difference in Chrome exists when sending DOM elements to the console.

Notice:

  • console.log prints the element in an HTML-like tree
  • console.dir prints the element in a JSON-like tree

Specifically, console.log gives special treatment to DOM elements, whereas console.dir does not. This is often useful when trying to see the full representation of the DOM JS object.

There's more information in the Chrome Console API reference about this and other functions.

See also