如何覆盖 console.log() 并在输出开头添加一个单词?

IT技术 javascript jquery
2021-02-27 02:55:09

我有函数 Log 打印数据和传递的参数,我如何打印内容&同时总是在日志的开头打印“报告:”这个词。

function Log(){
    if (app.debug_logs){
        if(console && console.log){
            console.log.apply(console, "Report: " + arguments);
        }
    }
}

Log(" error occurred ", " on this log... ");

我想要:“报告:此日志上发生错误......”

谢谢。

1个回答

您可以console.log轻松覆盖

(function(){
    if(window.console && console.log){
        var old = console.log;
        console.log = function(){
            Array.prototype.unshift.call(arguments, 'Report: ');
            old.apply(this, arguments)
        }
    }  
})();

console.log('test')

演示:小提琴

@FabrícioMatté 因为它是如此,你可以做任何你想做的事
2021-04-21 02:55:09
这会丢失原始行,因此所有日志都将出现在同一行
2021-04-21 02:55:09
更简单的console.log = function () { old.apply(this, ['Report: '].concat(arguments)) }怎么样?
2021-04-23 02:55:09
好吧,我知道 SO 的匿名投票系统,尽管匿名投票反对一个完全有效的答案根本没有建设性。
2021-05-17 02:55:09
@FabrícioMatté 可能是因为我偏离了最初的问题,问题是关于Log方法而不是修复它我建议覆盖console.log. 还不知道是不是越野
2021-05-19 02:55:09