如何在JavaScript中扩展控制台功能?

时间:2017-06-16 13:48:47

标签: javascript jquery

目前,当我们撰写console.log时,它会打印msg。我们可以extend控制台功能是否可以current time打印msg。我试过这样的

(function () {
        var old_console =console;
        var newConsole = newconsole;
        function newconsole() {
         var d =new Date();
         old_console.apply(this,arguments);
         return d.getMilliseconds();
        }
    })(); 

但它不起作用..我们可以打印吗?

4 个答案:

答案 0 :(得分:1)

创建自己的日志记录方法而不是控制台,并使用它来吐出console.log中的任何格式。 如果您想知道控制台中发生的所有事情的时间戳,那么只需从控制台设置启用时间戳 见console.log timestamps in Chrome?

我刚刚运行your code in fiddle并在jsfiddle中启用了此选项并获得此选项 enter image description here

当我将鼠标悬停在它上面时,它还会显示日期和时间。 你可以简单地看到它与

一起使用

/*Enable console settings to show timestamps and run this code*/
console.log('abc');

您不需要扩展日志功能来显示时间。这是新小提琴的截图。 Enable timestamps in console settings. Open console and click on cog icon at top right of console and check timestamps

答案 1 :(得分:0)

这适用于Chrome检查器:

console.log = function(msg) {
  var d = new Date();
  return d.getMilliseconds() + ' ' + msg;
}

console.log('Hi');

答案 2 :(得分:0)

myLogger = function(msg){
    console.log(new Date()+" " +msg);
}

myLogger('Hi');

只需为console.log创建一个包装器,它还包含一个调用new Date(),负责打印当前日期以及所需的日志消息。

答案 3 :(得分:0)

您想要增强public class MainActivity extends AppCompatActivity { private TextView password_view; private EditText Edit_password; private Button bt; String Default_password="0000"; SharedPreferences sh_Pref; SharedPreferences.Editor toEdit; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); password_view = (TextView) findViewById(R.id.pw_view); Edit_password = (EditText) findViewById(R.id.old_pw); bt = (Button) findViewById(R.id.bt); password_view.setText(Default_password); bt.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Default_password = Edit_password.getText().toString(); sharedPrefernces(); } }); } public void sharedPrefernces(){ sh_Pref = getSharedPreferences("PASS_WORD",MODE_PRIVATE); toEdit = sh_Pref.edit(); toEdit.putString("PASSWORD", Default_password); toEdit.commit(); password_view.setText(Default_password); } ,所以只需解决该方法 - 整个console.log对象。

console

如果您愿意,可以对(function (console) { var old_log = console.log; console.log = function() { var d = new Date(); old_log.apply(console, [d].concat(arguments)); return d.getMilliseconds(); } })(window.console); console.error()console.info()console.log()等执行相同操作。以下是一种有效的方法:

console.warn()

如果适当考虑,你可能会对further console methods做类似的事情。