本篇文章来自一个需求,前端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...

终于找到你!如何将前端console.log的日志保存成文件?相关推荐

  1. 前端console log之坑。。。

    版权声明:本文为 Codeagles 原创文章,可以随意转载,但必须在明确位置注明出处!!! ####背景 之前一直没接触过前端,现在工作接触了好多前端代码,身为前端小白的我,调试的时候还在用aler ...

  2. 渡一教育_Java每日一练:建立Statement的作用是什么、前端Console.log( Boolean(‘‘))输出的是什么、如果希望1监听TCP端口为9000,服务端应该怎样创建socket

    系列文章目录 文章目录 系列文章目录 题目1java部分建立Statement的作用是什么(答案在最后公布) 题目1 - 答案 ==解析== ==答案== 题目2 前端 js部分 ==答案== 题目3 ...

  3. MY_Log,无缝替换原生Log,支持日志输出到文件、FirePHP

    自己扩展了一个MY_Log, 用法类似于log4j,目前支持将日志输出到文件.FirePHP. 如果你需要将日志输出到其他地方,比如邮件.数据库等,可以很方便地进行扩展. 用法很简单,大家一看就知道. ...

  4. 前端console.log打印内容与后端请求返回数据不一致

    下面是请求接口返回的数据: 目的是为了获取list列表 然后前端打印的时候出现问题,list列表始终为空. 这是修改正确之后的,数据已正常显示. 修改如下: var obj = JSON.parse( ...

  5. Android中获取WebView加载的html中console.log输出的内容

    场景 Android中使用WebView加载本地html并支持运行JS代码和支持缩放: Android中使用WebView加载本地html并支持运行JS代码和支持缩放_BADAO_LIUMANG_QI ...

  6. [JavaScript] 多数前端工程师都没注意到的一个关于console.log()的坑

    [JavaScript] 多数前端工程师都没注意到的一个关于console.log()的坑 请阅读以下代码并猜测结果: function test() {let obj = {}, arr=[]for ...

  7. 前端重写console.log方法

    我们在开发前端的时候,有时候希望在开发和测试过程中,可以输出console.log日志,方便查看,但是在生产环境不需要再console.log的,于是想到重写console.log方法,以下有两种效果 ...

  8. vConsole:针对手机网页的前端开发者调试面板,手机web页面console.log 功能,如 Chrome devtools 上一样。

    vConsole:针对手机网页的前端开发者调试面板,移动短端console.log 功能,如devtools 上一样. 我们在开发手机版网页的时候,常常会出现下面的情景:开发时,在自己电脑上运行得好好 ...

  9. 前端:一键清除项目中无用的console.log代码

    关注并将「趣谈前端」设为星标 每天定时分享技术干货/优秀开源/技术思维 前言 说起console.log调试,不用多说,那是非常的好用,开发中帮助我们解决了不少Bug.我们经常能在开发环境中看见这一坨 ...

最新文章

  1. 大理大学日常作业计算机基础知识,大理学院成人高等教育计算机应用基础课程作业题及答案...
  2. 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
  3. Wince6 RIL层移植
  4. [导入]ASP.NET AJAX 说明文档-客户端引用-全局命名空间-JavaScript 基础类型扩展-Array 类型扩展-contains 函数...
  5. 纯数学教程 Page 325 例LXVIII (15) 调和级数发散
  6. Flyway 数据库版本管理控制
  7. python数值比较器_python笔记16(数据处理笔记1)
  8. 【2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017)】Knightsbridge Rises【最大流+路径输出】
  9. 极光笔记丨搭建UMS私有云文件服务器
  10. 二维拉普拉斯方程的数值解法
  11. Python制作【大麦网】自动抢票程序
  12. 5G 当自强,根系不能忘
  13. Java Test Fore
  14. java 三个点号...的含义-可变参数
  15. GPGPU-SIM 使用篇
  16. 遇到bug的解决办法,测试再也不背锅了
  17. Synchronize between MPOS and Backoffice (Dynamics 365 for Operation)
  18. 工作之外如何实现自我提升
  19. C++可微编程:寻找一种最佳的图像抖动模式
  20. CTFhub命令注入,过滤了cat命令,过滤了空格,过滤目录分隔符,过滤运算符,综合练习

热门文章

  1. Spring集成Quartz定时任务框架介绍
  2. Spring Boot 入门之缓存和 NoSQL 篇(四)
  3. SpringMVC路径匹配规则AntPathMatcher(转)
  4. VelocityTracker简要
  5. Cannot open include file: jni.h: No such file or directory解决方法
  6. 深入浅出Nintex——更新PeopleandGroup类型的Field
  7. python日志配置文件解释_python 之 logger日志 字典配置文件
  8. 用python做数据分析pdf_利用python进行数据分析pdf
  9. html php获取post数据格式,html - php文件无法得到POST过来的数据
  10. 计算机部分选择怎么操作,计算机基础试题选择题部分