javascript-NodeJS中缩进的多行日志

我想将JSON.stringify()的对象打印到控制台,作为上下文作为Mocha测试套件输出的一部分.

随着测试的缩进,我希望对象日志行向右缩进足够的距离(例如3-4个制表符空间),以使它们可以正确识别在正确的describe()组中.

我如何通过console.log或process.stdout.write这样的方法来实现?

解决方法:

如果仅用于console.log,则可能要查找组,请在控制台上进行检查:

var obj = {
  a : 1,
  b : 2,
  c: 3
  }

console.log('Non-tabbed');
console.group();
console.log(JSON.stringify(obj, null, 2));
console.groupEnd();
console.log('Back to non-tabbed');

它不是node.js固有的功能,但可在浏览器上使用. npm上有一个软件包可能对此有效.

node-console-group

这会将整个JSON字符串移动3个空格.它将JSON字符串用新行断开,然后在每行上添加3个空格到一个新字符串中,该字符串将保留每行移位的内容.

var results = document.getElementById('results');
var obj = {
    a: 5,
    b: 3,
    c: 4
};

var string = JSON.stringify(obj, null, 2);

var stringShifted = '';
string.split('\n').forEach(function(line){
    stringShifted += '   ' + line + '\n';
});
console.log(string);
console.log(stringShifted);

results.innerHTML = 'Before : \n' + string;
results.innerHTML += '\n\nAfter : \n' + stringShifted;
<pre id="results"></pre>
上一篇:python-sys.stdout作为默认函数参数


下一篇:如何从Windows Powershell调用Java进程?