終于找到你!如何將前端console.log的日志保存成文件?

本篇文章來自一個需求,前端websocket會收到各種消息,但是調試的時候,我希望把websoekt推送過來的消息都保存到一個文件里,如果出問題的時候,我可以把這些消息的日志文件提交給后端開發區分析錯誤。但是在瀏覽器里,js一般是不能寫文件的。鼠標另存為的方法也是不太好,因為會保存所有的console.log的輸出。于是,終于找到這個debugout.js。

debugout.js的原理是將所有日志序列化后,保存到一個變量里。當然這個變量不會無限大,因為默認的最大日志限制是2500行,這個是可配置的。另外,debugout.js也支持在localStorage里存儲日志的。

圖片描述

debugout.js

一般來說,可以使用打開console面板,然后右鍵save,是可以將console.log輸出的信息另存為log文件的。但是這就把所有的日志都包含進來了,如何只保存我想要的日志呢?

(調試輸出)從您的日志中生成可以搜索,時間戳,下載等的文本文件。 參見下面的一些例子。

Debugout的log()接受任何類型的對象,包括函數。 Debugout不是一個猴子補丁,而是一個單獨的記錄類,你使用而不是控制臺。

調試的一些亮點:

  • 在運行時或任何時間獲取整個日志或尾部
  • 搜索并切片日志
  • 更好地了解可選時間戳的使用模式
  • 在一個地方切換實時日志記錄(console.log)
  • 可選地將輸出存儲在window.localStorage中,并在每個會話中持續添加到同一個日志
  • 可選地,將日志上限為X個最新行以限制內存消耗

下圖是使用downloadLog方法下載的日志文件。

圖片描述

官方提供的demo示例,歡迎試玩。http://inorganik.github.io/de...

圖片描述

使用

在腳本頂部的全局命名空間中創建一個新的調試對象,并使用debugout的日志方法替換所有控制臺日志方法:

var bugout = new debugout();// instead of console.log('some object or string')
bugout.log('some object or string');

API

  • log() -像console.log(), 但是會自動存儲
  • getLog() - 返回所有日志
  • tail(numLines) - 返回尾部執行行日志,默認100行
  • search(string) - 搜索日志
  • getSlice(start, numLines) - 日志切割
  • downloadLog() - 下載日志
  • clear() - 清空日志
  • determineType() - 一個更細粒度的typeof為您提供方便

可選配置

···
// log in real time (forwards to console.log)
self.realTimeLoggingOn = true;
// insert a timestamp in front of each log
self.useTimestamps = false;
// store the output using window.localStorage() and continuously add to the same log each session
self.useLocalStorage = false;
// set to false after you're done debugging to avoid the log eating up memory
self.recordLogs = true;
// to avoid the log eating up potentially endless memory
self.autoTrim = true;
// if autoTrim is true, this many most recent lines are saved
self.maxLines = 2500;
// how many lines tail() will retrieve
self.tailNumLines = 100;
// filename of log downloaded with downloadLog()
self.logFilename = 'log.txt';
// max recursion depth for logged objects
self.maxDepth = 25;
···

項目地址

https://github.com/inorganik/...

另外

我自己也模仿debugout.js寫了一個日志保存的項目,該項目可以在ie10及以上下載日志。
debugout.js在ie瀏覽器上下載日志的方式是有問題的。
項目地址:https://github.com/wangduandu...

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281999.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281999.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281999.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于 .NET 6 開發的開源遠程終端工具

你好,這里是 Dotnet 工具箱,定期分享 Dotnet 有趣,有用的工具,不要忘記關注。今天介紹一個非常實用的工具 mRemoteNG,這是一個基于 .NET 6 開發的遠程終端軟件,開源免費,不用擔心版權和軟件費用…

mysql 行列轉換 動態_mysql 行列動態轉換的實現(列聯表,交叉表)

(1)動態,適用于列不確定情況create table table_name(id int primary key,col1 char(2),col2 char(2),col3 int);insert into table_name values(1 ,A1,B1,9),(2 ,A2,B1,7),(3 ,A3,B1,4),(4 ,A4,B1,2),(5 ,A1,B2,2),(6 ,A2,B2,9),(7 ,A3,B2,8),(8 ,A4,B2,5),(9 ,A1,…

第六次作業—例行報告

本周PSP 進度條 代碼累計折線圖 博文累計折線圖 本周餅狀圖 轉載于:https://www.cnblogs.com/zej87/p/7738895.html

Tomcat7/8開啟WebDAV的支持

WebDAV是一種超文本傳輸協議,Tomcat默認是支持WebDAV的,且默認為禁用狀態。 更多詳細信息,請參考: https://zh.wikipedia.org/wiki/WebDAV http://www.webdav.org/ 開啟步驟如下: 1、在Tomcat的webapps目錄下新建webda…

算法復雜度分析(下)

前一篇文章算法復雜度分析(上)講述了復雜度的大 O 表示法和幾個分析原則,這篇文章我們來講講另外幾種復雜度,最好情況時間復雜度(best case time complexity)、最壞情況時間復雜度(worst case t…

免費分享一些.NET Core比較優秀的社區資料和微軟官方資料

這次小編所分享的這套筆記手冊,主要是分享一些.NET Core比較優秀的社區資料和微軟官方資料。已經把所有的重要知識點進行了完整的歸類和整理,可以讓大家更清晰和快速的學習.NET Core,不浪費任何多余的時間!全網首發!相…

python異或運算怎么算_小強學Python+OpenCV之-1.4.4掩膜mask及位運算(與、或、非、異或)...

問題引入在小強學PythonOpenCV之-1.4.2裁剪一節,我們使用的是numpy數組切片功能實現圖片區域的裁剪。那么,如果我們想要裁剪圖像中任意形狀的區域時,應該怎么辦呢?答案是,使用掩膜(masking)。但是這一節我們…

51 Nod 1670 打怪獸

1670 打怪獸lyk在玩一個叫做“打怪獸”的游戲。游戲的規則是這樣的。lyk一開始會有一個初始的能量值。每次遇到一個怪獸,若lyk的能量值>怪獸的能量值,那么怪獸將會被打敗,lyk的能量值增加1,否則lyk死亡,游戲結束。若…

QQ協議調試器 QQDebugger

QQ協議老變,為了分析協議,單用抓包工具還是不夠的,還是得需要很好的調試工具。在網上找了幾個調試工具,易用性均欠佳,不得已自己開發了一個 QQDebugger,不敢專美,特意發布出來。QQDebugger 在功…

PostgreSQL 10.1 手冊_部分 II. SQL 語言_第 5 章 數據定義_5.5. 修改表

5.5. 修改表 5.5.1. 增加列5.5.2. 移除列5.5.3. 增加約束5.5.4. 移除約束5.5.5. 更改列的默認值5.5.6. 修改列的數據類型5.5.7. 重命名列5.5.8. 重命名表當我們已經創建了一個表并意識到犯了一個錯誤或者應用需求發生改變時,我們可以移除表并重新創建它。但如果表中…

Uptime-Kuma 一個輕量的開源監控工具

點擊藍字 關注我們你好,這里是 Dotnet 工具箱,定期分享 Dotnet 有趣,有用的工具,不要忘記關注。今天給大家介紹一個開源的監控工具 Uptime Kuma, 主要用來監控 Web 以及網絡, 和 Prometheus 相比, 它是輕量的, Uptime Kuma 是基于…

怎么查看mysql正在運行的語句_MySQL如何查詢當前正在運行的SQL語句

通過status命令,查看Slow queries這一項,如果值長時間>0,說明有查詢執行時間過長以下為引用的內容:mysql> status;--------------mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i386)Connection id: 53Current database: (n…

SpringBoot實戰之SpringBoot自動配置原理

SpringBoot 自動配置主要通過 EnableAutoConfiguration, Conditional, EnableConfigurationProperties 或者 ConfigurationProperties 等幾個注解來進行自動配置完成的。EnableAutoConfiguration 開啟自動配置,主要作用就是調用 Spring-Core 包里的 loadFactoryName…

Install OpenCV-Python in Ubuntu

之前安裝python版opencv,需要下載whl文件,進行安裝,這是在window環境下的:安裝opencv_python,下載whl包安裝系統python下的opencv 今天發現一個簡單的方法。Install OpenCV-Python in UbuntuInstall package python-opencv with f…

如何健康地跑步?

最近某司高管跑步 28 公里后猝死,被各大媒體報道,每次這種悲劇發生,而且還跟跑步扯上關系,總是讓人心痛。通過報道了解到,這位高管酷愛跑馬拉松,身體素質和運動能力肯定是強于普通人的,但還是遭…

項目共享協調機制

API,協調前端與后端開發的連接點。 面臨幾個問題 1. API更新不及時,導致前端開發的接口沒有及時更新而出現各種問題。 2. 文檔描述得不準確 3. 沒有統一的標準。 我們可以使用swagger editor, swagger ui。第一是編輯器,第二個是展…

vs2008C1902程序數據庫管理不匹配

大清早打開vs2008,出現這么詭異的錯, 刪了一個dll的就好了。如圖

mysql user表 空_mysql 忘記密碼,重置密碼,mysql.user表為空的解決辦法

一、用戶表有用戶,直接修改密碼ERROR 1045 (28000): Access denied for user rootlocalhost (using password: YES)修改mysql配置文件my.cnf:vim /etc/my.cnf在[mysqld]中添加skip-grant-tables重啟mysql服務,用空密碼直接登錄,查…

鏈式封裝與調用

var CheckObject function(){}; CheckObject.prototype function(){checkName:function(){// codereturn this;},checkEmail:function(){// code return this;},checkPassword:function(){// codereturn this;} } //使用 var Check new CheckObject() Check.checkName().che…

全新升級的AOP框架Dora.Interception[3]: 基于特性標注的攔截器注冊方式

在Dora.Interception中按照約定方式定義的攔截器可以采用多種方式注冊到目標方法上。本篇文章介紹最常用的基于“特性標注”的攔截器注冊方式,下一篇會介紹另一種基于(Lambda)表達式的注冊方式:全新升級的AOP框架Dora.Interceptio…