请选择 进入手机版 | 继续访问电脑版
记得收藏【国际动画教程网】,赶快注册吧!
注册

合作站点账号登陆

QQ登录

只需一步,快速开始

扫一扫,访问微社区

快捷导航
查看: 42463|回复: 0
收起左侧

JavaScript开源:debugout.js-可将前端console.log的日志保存成文件[含2P]

[复制链接]
发表于 2017-5-25 07:26:51 | 显示全部楼层 |阅读模式

介绍

一般来说,可以使用打开console面板,然后右键save,是可以将console.log输出的信息另存为log文件的。但是这就把所有的日志都包含进来了,如何只保存我想要的日志呢?

(调试输出)从您的日志中生成可以搜索,时间戳,下载等的文本文件。 参见下面的一些例子。

Debugout的log()接受任何类型的对象,包括函数。 Debugout不是一个猴子补丁,而是一个单独的记录类,你使用而不是控制台。

调试的一些亮点:

  • 在运行时或任何时间获取整个日志或尾部

  • 搜索并切片日志

  • 更好地了解可选时间戳的使用模式

  • 在一个地方切换实时日志记录(console.log)

  • 可选地将输出存储在window.localStorage中,并在每个会话中持续添加到同一个日志

  • 可选地,将日志上限为X个最新行以限制内存消耗

下图是使用downloadLog方法下载的日志文件。

使用

在脚本顶部的全局命名空间中创建一个新的调试对象,并使用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;

输出示例

以下是您可以使用日志的几个示例。 每个示例假定您已经建立了一个调试对象并使用它进行日志记录:

var bugout = new debugout();
bugout.log('something');
bugout.log(somethingElse);
bugout.log('etc');

示例 #1: 将日志下载为.txt文件的按钮

只需调用debugout的downloadLog()方法即可。 您可以通过编辑self.logFilename来更改文件名。

<input type="button" value="Download log" onClick="bugout.downloadLog()">

示例 #2: 将日志附加到电子邮件的PhoneGap应用程序

显示的示例使用Email Composer插件,并且还需要File插件:cordova插件添加org.apache.cordova.file。

function sendLog() {
	var logFile = bugout.getLog();

	// save the file locally, so it can be retrieved from emailComposer
	window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
		// create the file if it doesn't exist
		fileSystem.root.getFile('log.txt', {create: true, exclusive: false}, function(file) {
			// create writer
			file.createWriter(function(writer) {
		        // write
	    		writer.write(logFile);
	    		// when done writing, call up email composer
				writer.onwriteend = function(evt) {
		            // params: subject,body,toRecipients,ccRecipients,bccRecipients,bIsHTML,attachments,filename
		            var subject = 'Log from myApp';
		            var body = 'Attached is a log from my recent testing session.';
					window.plugins.emailComposer.showEmailComposer(subject,body,[],[],[],false,['log.txt'], ['myApp log']);
		        }
			}, fileSystemError);
		}, fileSystemError);
	}, fileSystemError);
}
function fileSystemError(error) {
    bugout.log('Error getting file system: '+error.code);
}

更多

  • 如果发生错误或某些其他事件,请通过ajax请求将日志发布到您的服务器。
  • 允许用户下载提交表单的副本。
  • 生成收据供用户下载。
  • 记录调查答案,知道用户回答的问题。

项目主页:http://www.open-open.com/lib/view/home/1494897315351




上一篇:Java开源:traffic-shm-Java 版异步无锁共享内存实现
下一篇:Java开源:traffic-shm-异步无锁 IPC 类库
一起共享资源,共建精品资源平台。记得一定要收藏我们网站。www.gjdhjc.com ||||| 还有我们的网址导航:www.58q8.com【链接失效可以留言看到第一时间补帖,如果懒的回复我也是没办法了】
快速回复 返回顶部 返回列表