Chrome 中的 console.log 时间戳?

新手上路,请多包涵

有没有什么快速的方法可以让 Chrome 在 console.log 写入时输出时间戳(就像 Firefox 那样)。还是在前面加上 new Date().getTime() 是唯一的选择?

原文由 UpTheCreek 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 843
2 个回答

在 Chrome 中,控制台设置中有一个名为“显示时间戳”的选项(按 F1 或选择开发人员工具 -> 控制台 -> 设置 [右上角]),这正是我所需要的。

我刚找到它。不需要其他肮脏的黑客来破坏占位符并擦除代码中记录消息的位置。

适用于 Chrome 68+ 的更新

“显示时间戳”设置已移至“DevTools 设置”的“首选项”窗格,位于 DevTools 抽屉的右上角:

显示时间戳操作方法图片

原文由 Krzysztof Wolny 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试这个:

 console.logCopy = console.log.bind(console);

console.log = function(data)
{
    var currentDate = '[' + new Date().toUTCString() + '] ';
    this.logCopy(currentDate, data);
};

或者这个,如果你想要一个时间戳:

 console.logCopy = console.log.bind(console);

console.log = function(data)
{
    var timestamp = '[' + Date.now() + '] ';
    this.logCopy(timestamp, data);
};

以一种很好 方式记录 不止一件事(比如对象树表示):

 console.logCopy = console.log.bind(console);

console.log = function()
{
    if (arguments.length)
    {
        var timestamp = '[' + Date.now() + '] ';
        this.logCopy(timestamp, arguments);
    }
};

使用格式字符串( JSFiddle )

 console.logCopy = console.log.bind(console);

console.log = function()
{
    // Timestamp to prepend
    var timestamp = new Date().toJSON();

    if (arguments.length)
    {
        // True array copy so we can call .splice()
        var args = Array.prototype.slice.call(arguments, 0);

        // If there is a format string then... it must
        // be a string
        if (typeof arguments[0] === "string")
        {
            // Prepend timestamp to the (possibly format) string
            args[0] = "%o: " + arguments[0];

            // Insert the timestamp where it has to be
            args.splice(1, 0, timestamp);

            // Log the whole array
            this.logCopy.apply(this, args);
        }
        else
        {
            // "Normal" log
            this.logCopy(timestamp, args);
        }
    }
};

输出结果:

示例输出

PS:仅在 Chrome 中测试。

PPS: Array.prototype.slice 在这里并不完美,因为它会被记录为对象数组而不是一系列对象。

原文由 JSmyth 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏