reactjs – React远程控制台日志记录
发布时间:2020-12-15 20:10:39 所属栏目:百科 来源:网络整理
导读:我使用Mongo设置Express Server,以便在使用React对Electron应用程序进行调试测试期间记录控制台日志. 我只是使用ajax发送我通常用console.log打印的内容.这适用于我想要记录的单个事件,但是如何将整个chrome样式控制台导出为对象,以便任何到达控制台的内容(
我使用Mongo设置Express Server,以便在使用React对Electron应用程序进行调试测试期间记录控制台日志.
我只是使用ajax发送我通常用console.log打印的内容.这适用于我想要记录的单个事件,但是如何将整个chrome样式控制台导出为对象,以便任何到达控制台的内容(例如:webpack消息,来自其他组件的消息等)都可以作为一个对象访问我可以做一个POST. 基本上是一种记录您在控制台中看到的所有内容的方式,无论是来自第三方软件包还是我自己记录的内容.是否有控制台转储我在铬/电子/反应文档中没有看到的某种方法? 例: //import some debugger method to POST to server collecting logs export function debugpost(logobject) { $.ajax({ type: "POST",url: "http://" + "192.168.0.94" + ":3000/tasks",headers: { },data: { log: logobject },success: function(data) { }.bind(this),error: function(errMsg) { console.log(errMsg); }.bind(this) }); } //simple way of recording logs in other component. var testlogmessage = "This isn't right" debugpost(testlogmessage); 将单个事件记录到服务器很容易.如何转储整个控制台? UPDATE var logs = [],hook_stream = function(_stream,fn) { // Reference default write method var old_write = _stream.write; // _stream now write with our shiny function _stream.write = fn; return function() { // reset to the default write method _stream.write = old_write; }; },// hook up standard output unhook_stdout = hook_stream(process.stdout,function(string,encoding,fd) { logs.push(string); }); 但是当使用react时,两者都给我写这个错误: TypeError: Cannot read property 'write' of undefined hook_stream 当我在电子main.js中使用它时,这种特殊方法似乎记录电子节点侧.但是,我不能让它在我的反应组件中工作. 解决方法
这样做的一种方法是使用自定义实现覆盖console.log,因此每当代码的任何部分调用console.log时,调用将被您的自定义函数拦截,您可以使用某些函数将消息记录到远程服务器API调用.
记录完消息后,可以调用原始的console.log方法. 以下示例显示了console.log方法的自定义实现. var orgLog = console.log; console.log = function(message) { alert("Intercepted -> " + message); //Call Remote API to log the object. //Invoke the original console.log return orgLog(message); } let a = { foo: "bar" }; console.log(a); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |