Chrome JavaScript developer console: Is it possible to call console.log() without a newline? Chrome JavaScript developer console: Is it possible to call console.log() without a newline? google-chrome google-chrome

Chrome JavaScript developer console: Is it possible to call console.log() without a newline?


No, it's not possible. You'll have to keep a string and concatenate if you want it all in one line, or put your output elsewhere (say, another window).


In NodeJS you can use process.stdout.write and you can add '\n' if you want.

console.log(msg) is equivalent to process.stdout.write(msg + '\n').


Yes, it's possible (check out the demo below) -- by implementing your own virtual console on top of the native browser console, then syncing it to the real one.

This is much easier than it sounds:

  1. maintain a display buffer (e.g. an array of strings representing one line each)
  2. call console.clear() before writing to erase any previous contents
  3. call console.log() (or warn, error, etc) to fill the console with the contents from your display buffer

Actually, I've been doing this for some time now. A short, rudimentary implementation of the idea would be something along the following lines, but still capable of animating the console contents:

// =================================================// Rudimentary implementation of a virtual console.// =================================================var virtualConsole = {    lines: [],    currentLine: 0,    log: function (msg, appendToCurrentLine) {        if (!appendToCurrentLine) virtualConsole.currentLine++;              if (appendToCurrentLine && virtualConsole.lines[virtualConsole.currentLine]) {            virtualConsole.lines[virtualConsole.currentLine] += msg;        } else {            virtualConsole.lines[virtualConsole.currentLine] = msg;        }                console.clear();                virtualConsole.lines.forEach(function (line) {            console.log(line);        });    },    clear: function () {        console.clear();        virtualConsole.currentLine = 0;    }}// =================================================// Little demo to demonstrate how it looks.// =================================================// Write an initial console entry.virtualConsole.log("Loading");// Append to last line a few times.var loadIndicatorInterval = setInterval(function () {    virtualConsole.log(".", true); // <- Append.}, 500);// Write a new line.setTimeout(function () {    clearInterval(loadIndicatorInterval);    virtualConsole.log("Finished."); // <- New line.}, 8000);