资讯专栏INFORMATION COLUMN

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

wayneli / 2328人阅读

摘要:于是,终于找到这个。的原理是将所有日志序列化后,保存到一个变量里。但是这就把所有的日志都包含进来了,如何只保存我想要的日志呢调试输出从您的日志中生成可以搜索,时间戳,下载等的文本文件。的接受任何类型的对象,包括函数。

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83020.html

相关文章

  • 前端补集 - 收藏集 - 掘金

    摘要:原文地址一个非常适合入门学习的博客项目前端掘金一个非常适合入门学习的项目,代码清晰结构合理新闻前端掘金介绍一个由编写的新闻。深入浅出读书笔记知乎专栏前端专栏前端掘金去年的一篇老文章,恰好今天专栏开通,迁移过来。 破解前端面试(80% 应聘者不及格系列):从闭包说起 - 掘金修订说明:发布《80% 应聘者都不及格的 JS 面试题》之后,全网阅读量超过 6W,在知乎、掘金、cnodejs ...

    YorkChen 评论0 收藏0
  • 前端补集 - 收藏集 - 掘金

    摘要:原文地址一个非常适合入门学习的博客项目前端掘金一个非常适合入门学习的项目,代码清晰结构合理新闻前端掘金介绍一个由编写的新闻。深入浅出读书笔记知乎专栏前端专栏前端掘金去年的一篇老文章,恰好今天专栏开通,迁移过来。 破解前端面试(80% 应聘者不及格系列):从闭包说起 - 掘金修订说明:发布《80% 应聘者都不及格的 JS 面试题》之后,全网阅读量超过 6W,在知乎、掘金、cnodejs ...

    AbnerMing 评论0 收藏0
  • 腾讯IVWEB前端工程化工具feflow思考与实践

    摘要:本篇文章主要介绍腾讯团队从到在工程化的思考和实践。的全称是前端工作流,致力于提升研发效率和规范的工程化解决方案。最后腾讯团队的工程化解决方案已经开源主页如果对您的团队或者项目有帮助,请给个支持一下哈 showImg(https://segmentfault.com/img/remote/1460000013362603?w=1200&h=400); 本篇文章主要介绍腾讯IVWEB团队从...

    TANKING 评论0 收藏0
  • schedule_task_monitor 前端批跑模块介绍

    摘要:任务退出码任务正常退出批跑模块会接受到为,因为异常退出会接收到。主要注意的检查项为连接未关闭等。每次任务退出后,批跑系统会检测其是否为空,不为空则移动到目录目录下,并以版本号为文件夹存储,以方便备份查看。 背景 随着node的出现与发展,前端承担了越来越多的职责。 前端也有越来越多的场景需要使用批跑脚本 利用爬虫或者接口定时同步数据到DB 线上配置文件、数据文件定时批跑生成并发布到线...

    高胜山 评论0 收藏0
  • 前端基础进阶(十五):详解 ES6 Modules

    摘要:下载地址安装一个好用的命令行工具在环境下,系统默认的非常难用,所以我个人比较推荐大家使用或者。下载地址安装在命令行工具中使用查看版本的方式确保与都安装好之后,我们就可以安装了。前端基础进阶系列目录 showImg(https://segmentfault.com/img/remote/1460000009654403?w=1240&h=272); 对于新人朋友来说,想要自己去搞定一个E...

    Lowky 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<