Mit*_*lad 82 javascript console logging google-chrome
我想在每次调用console.log()之后使用console.log()来记录消息而不添加新行.这可能吗?
Ry-*_*Ry- 41
不,这是不可能的.你必须保留一个字符串并连接,如果你想要一行,或将你的输出放在别处(比如,另一个窗口).
Pab*_*abo 32
在NodeJS中,您可以使用process.stdout.write,如果需要,可以添加'\n'.
console.log(msg)
相当于process.stdout.write(msg + '\n')
.
tko*_*one 17
您可以根据需要添加任意数量的内容arguments
:
console.log('hi','these','words','will','be','separated','by','spaces',window,document)
您将在一行中获得所有输出,并且对象引用为内联,然后您可以从那里下载检查器.
Joh*_*isz 13
是的,有可能(请查看下面的演示)-通过在本机浏览器控制台之上实现自己的虚拟控制台,然后将其同步到真实的控制台。
这比听起来容易得多:
console.clear()
写入之前先进行呼叫以擦除之前的所有内容console.log()
(或警告,错误等)以将显示缓冲区中的内容填充到控制台实际上,我已经这样做了一段时间。这个想法的简短而基本的实现可以遵循以下几方面,但是仍然可以使控制台内容具有动画效果:
// =================================================
// 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);
Run Code Online (Sandbox Code Playgroud)
与直接控制台交互混合使用时,它肯定有其缺点,并且看起来确实很丑陋-但它确实具有其有效的用途,没有它,您将无法实现。
she*_*nan 11
最简洁的答案是不.
但
如果您的用例涉及尝试记录永久更改数据同时避免控制台膨胀,那么实现此目的的一种方法(在某些浏览器中)将console.clear()
在每个输出之前使用.
function writeSingleLine (msg) {
console.clear();
console.log(msg);
}
writeSingleLine('this');
setTimeout( function () { writeSingleLine('is'); }, 1000);
setTimeout( function () { writeSingleLine('a'); }, 2000);
setTimeout( function () { writeSingleLine('hack'); }, 3000);
Run Code Online (Sandbox Code Playgroud)
请注意,这可能会破坏应用程序中发生的任何其他日志记录功能.
免责声明:我认为这是一个黑客.
归档时间: |
|
查看次数: |
57040 次 |
最近记录: |