可以打印栈信息的日志函数,移动混合开发必备!!!

stack-log

可以打印栈信息的日志函数,移动混合开发必备!!!

简介

断点信息,可以反映函数的调用栈,但是不是所有的场景都适合打断点.console 直接输出的日志,可以反映的简单行数信息,但是部分场景需要结合日志所在函数的调用栈来确定某些调试信息.

偶然间发现,可以用 new Error 记录栈结构,只要能适当处理,去除不必要的栈信息,就可以很好地保持 console 日志的连续性和断点调试时函数调用的明晰性.

这是一个有一点小技巧的工具函数.很简单,很实用!

安装

nodejs 环境

npm i stack-log --save

浏览器环境

下载 lib/stack-log.js 到本地,然后:

<script type="text/javascript" src="path/to/stack-log.js"></script>

使用示例

nodejs 示例

const {log} = require("stack-log")

function funcA (){
  funcB()
}

function funcB(){
  funcC()
}

function funcC(){
  log({k:"v"})
}

funcA()


/* 可能的输出:
{"k":"v"}
    at funcC (/Users/yanfeng/Documents/tmp/stack-test/index.js:12:3)
    at funcB (/Users/yanfeng/Documents/tmp/stack-test/index.js:8:3)
    at funcA (/Users/yanfeng/Documents/tmp/stack-test/index.js:4:3)
    at Object.<anonymous> (/Users/yanfeng/Documents/tmp/stack-test/index.js:15:1)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
*/

浏览器 示例

<script type="text/javascript" src="script/stack-log.js"></script>
<script type="text/javascript">
function funcA (){
  funcB()
}

function funcB(){
  funcC()
}

function funcC(){
  log({k:"v"})
}

funcA()
</script>

可能的输出:

{"k":"v"}
    at funcC (file:///Users/yanfeng/Documents/tmp/index.html:12:3)
    at funcB (file:///Users/yanfeng/Documents/tmp/index.html:8:3)
    at funcA (file:///Users/yanfeng/Documents/tmp/index.html:4:3)
    at file:///Users/yanfeng/Documents/tmp/index.html:15:1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java后端生活

Linux(九)实用指令

1203
来自专栏生信宝典

Linux学习-环境变量和可执行属性

文件的可执行属性和环境变量 Linux下文件有一个特殊的属性即可执行属性,用来指示这个文件是一个可执行的脚本或可以运行的二进制文件。前面所提到的这些命令,都具有...

1889
来自专栏海天一树

小朋友学Python(2):编写“Hello World!”

本节学习python的第一个程序:输出“Hello World!”。咱们用两种方法实现 方法(一) 进入python环境,直接使用print方法 ? 方法(二)...

2516
来自专栏opengps

软件安装到D盘失败,提示“您对该安装目录没有写权限”解决办法

火狐安装中不能修改成C盘以外的路径原因终于找到,这个不是账户权限的问题 四部解决问题:(我习惯在安装软件的时候把安装路径中的C改成D) 1,火狐安装:常规...

3619
来自专栏Aloys的开发之路

javadoc相关问题

src源代码生成html格式文档:http://www.cnblogs.com/shenliang123/archive/2012/04/23/2466483....

20710
来自专栏AILearning

Git 团队常用命令操作指南

命令如下: git clone -b <branch name> [remote repository address] 主要就是在clone的时候,后面添...

1858
来自专栏Aloys的开发之路

javadoc相关问题

欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinn...

875
来自专栏LIN_ZONE

pdf转html插件~~~pdf2htmlEX安装,配置及使用

https://github.com/coolwanglu/pdf2htmlEX/wiki

1024
来自专栏博客园

Linux常用命令

   ls -a 查询所有子目录和文件,包括隐藏文件【隐藏文件以“.”开头的文件】

1262
来自专栏Java技术栈

轻松几步搞定SSH连接Git配置

如果使用ssh的方式管理,需要配置ssh key. 1、打开git bash命令窗口 2、生成ssh key ssh-keygen -t rsa -b 4096...

34610

扫码关注云+社区