loggers-best v1.0.2
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