loggers-best
v1.0.2
Published
a log module for print loginfo use in TV and Mobile
Downloads
2
Readme
Loggers 使用指南
简介
为了方便在TV端和移动端能够方便的查看log信息,本模块能够在浏览器端和移动端提供一套统一的API来方便本地调试和真机调试;
安装
首先安装loggers-best
模块,推荐全局安装此模块,可以开启本地log服务;
npm install -g loggers-best
会自动创建两个全局命名,分别是loggers
和logs
,logs
是loggers
的别名;
使用
loggers-best
支持在本地使用和服务端构建使用;
本地使用
- 首先在命令行中使用
logs
开启本地服务器,能够接受log信息,并且在浏览器页面输出log信息;
logs -o
默认监听本机的8080端口,如果被占用可以更改监听端口; 选项:
{
"loggers-option":{
"-o":"是否直接打开log输出页面,默认为否",
"-p":"服务器监听端口,默认8080",
"-b":"-o打开log页面启用的浏览器,默认default",
"-n":"监听页面的pageName,方便服务端构建使用,本地默认:log",
"-h":"查看帮助信息"
}
}
经过上面的设置,本地已经启动了一个能够接受log信息的服务器,并且启动了一个输出log信息的页面;
<URL for Logger page>: http://localhost:8080/console/log
<URL for Connect>: http://ip-address:8080
<Script for CDN src>: <script src="//g.alicdn.com/tvtaobao-assets/pushfiles/1.0.46/logger-client.js"></script>
- 客户端引入
logger-best
的客户端模块,上面<Script for CDN src>
:为引入文件的CDN地址;
<script src="//g.alicdn.com/tvtaobao-assets/pushfiles/1.0.43/logger-client.js"></script>>
<script type="text/javascript">
//开启自动模式
logger.auto({
url:"http://ip-address:8080",//本机ip地址:<URL for Connect>
name:"log",//监听页面的pageName,需要和监听页对应;
local:false,//默认向log页发送信息,关闭仅在本地页面调试展示log信息
monitor:true,//打开全局监听报错,事件下一轮执行
result:function(response) {
console.log(response);//查看log信息的发送状态,方便调试状态
}
});
</script>
- 查看log信息:首先在浏览器中打开log信息输出页,地址为
<URL for Logger page>: http://localhost:8080/console/{pageName}
,因为loggers-best
可以在服务端供多人使用,所以此处的{pageName}
需要在客户端和页面地址中对应; 打开页面后,查看控制栏,log信息在此处输出,页面中仅显示当前的请求时间和请求方式;
服务端使用
基本和上述方式相同,但是本地不用再次启动服务,只需要连接线上地址更改{pageName}
即可,本地客户端connect
的地址和线上对应;
//online
url:http://example.com:8080/console/{pageName}
//local
logger.connect("http://example.com:8080",pageName);
客户端基本用法
logger.log()
客户端的log信息基本支持现有console
模块的所有用法,比如logger.warn,logger.log,logger.count
等一系列W3C定义的console
方法,完全如同在浏览器中使用console.log()
一样,唯一的不同是将console.log
改为logger.log
;logger.connect(url,pageName)
logger模块连接的服务端地址,比如本地启动的ip地址为http://30.22.55.100:8080/console/log
,那么连接的方法如下:
logger.connect("http://30.22.55.100:8080","log");
pageName有一个默认值为log
,选填;
上述地址的console
只是一个命名空间,不需要在connect
中写入,只需要传入host
和pageName
即可;
3. logger.close()
log信息只建议在本地环境开启,线上生产环境需要关闭,logger
提供了close()
方法来关闭log信息;
logger.setEnv(boolean)
如果仅仅是在模拟环境测试(浏览器模拟环境),而不是在真机上面调试,logger
提供了一套统一的API,只要调用logger,setEnv(true)
就可以不向远程发送log,而是在本地浏览器端直接显示log信息;logger.clearScreen()
虽然远程的log输出页面提供了清空日志
的按钮,但是每次点击比较麻烦,所以提供了logger.clearScreen()
的方法来清除远程页面的日志信息,在每次页面初始化的时候调用即可,别名:logger.cls()
;logger.postError()
真机测试的时候,然后可以使用log发送错误,但是如果碰到没有兜底的错误,那么是不会有任何提示的,logger.posetError()
帮你监听全局的错误信息,并且自动发送错误到log输出页面,默认关闭;logger.getResult(callback)
如果发现logger
模块输出不正常,调用此方法可以查看AJAX
请求的响应信息去查看错误代码,function callback(response){print(response)}
一参即为当时发送的POST请求的响应信息;logger.auto(obj)
上述一些常用的设定被封装成了一个名为auto
的方法,auto
里面会自动调用一些功能来简化上面的设置过程:
- 自动调用
clearScreen
方法,每次页面初始化都清除上次的log; - 自动调用
postError
方法,自动监听页面的报错并发送错误; - 自动调用
connect
方法进行连接; - 自动调用
getResult
方法,传入的参数中result
为Function类型,选填;
选项:auto方法传入的为object类型,参数如下:
url
:String,对应connect
的第一个参数(必填),log信息的输出地址;name
:String,对应connect
的第二个参数,选填,默认为log
;local
:Boolean,如果为true
表明启用setEnv(true)
,仅在本地页面输出log信息,非真机环境使用,默认false;result
:Function,getResult
方法的回调函数,(选填),是否查看AJAX
响应信息;monitor
:Boolean,是否执行postError
的监听,默认为:true