美文网首页
Logcat-swift的使用

Logcat-swift的使用

作者: 左卫门_6e62 | 来源:发表于2020-03-25 21:38 被阅读0次

logcat-swift是一个适用于苹果平台的轻量的日志打印方案,项目托管在:https://github.com/limall/logcat-swift

特性

  • 对日志进行基本的分级打印,以及过滤筛选
  • 打印端基于electron开发,可在windows、macOS、linux上运行
  • 不需要将调试设备连接到mac上,仅通过局域网便可打印日志
  • 可同时打印多个设备发送来的日志,可通过logid筛选各个设备的日志
  • 可以将日志输出到设备文件中,上传后可再用打印端打印

logcat-swift分为打印端和发送端两部分,打印端是一个单独的app,它基于electron开发,通过tcp协议接收发送端发来的log信息并分条理地打印出来;发送端是一些swift文件,将它们复制到你的swift项目中,调用其api将log信息发送给打印端打印。

打印端的使用

打印端效果如下


QQ20200409-222432.png

打印端接收消息的端口为20131,请务必保证该端口没有被占用。

自己动手使用electron_app

位于根目录下的electron_app文件夹就是打印端的electron项目,如何启动它以及如何打包请参考链接:https://www.jianshu.com/p/5812572a5e66

使用细节

打印端的显示顺序为新收到的消息打印在顶部而不是底部,这里需要注意一下。打印的消息上面是六个交互控件,它们的功能如下:

  • clear按钮用于清除所有记录
  • level选项卡选择显示日志的最低级别
  • tag输入框,筛选tag为输入值的日志
  • logid输入框,筛选logid为输入值的日志(logid用来分辨发送消息的设备)
  • key输入框,筛选消息主体含有输入值的日志
  • open file按钮,用于打印设备上传的日志

发送端

直接将根目录下的swift文件夹里的文件复制到你的项目中即可引入发送端。

设置发送目的地

发送日志到打印端前务必设置发送目的地,代码如下:

Logcat.resetDst(toIp: "127.0.0.1", toPort: 20131, logId: 1234567890)

分别打印各级level的日志:

Logcat.i("Hello,world!你好,世界!")
Logcat.d("Hello,world!你好,世界!")
Logcat.w("Hello,world!你好,世界!")
Logcat.e("Hello,world!你好,世界!")

当项目为release时取消打印

Logcat.outputKind = .None

设置最低打印级别

Logcat.setOutputLevel(level: .warning)

输出到文件

当调用以下代码后,日志就会输出到设备的本地文件:

Logcat.setSave2Local(appName: "test")

appName参数用来以后适配mac应用,这里随便传个字符串即可

setSave2Local函数调用时会创建一个文件夹,之后打印的日志都会存放在该文件夹。建议在app启动后就调用该函数,这样文件夹的命名规则为首次运行命名为0,第二次为1,依此类推。

当日志非常多时,日志会存放在多个文件中,文件名起始为0,接着是1、2、3...,日志文件依次存放在这些文件中。

所以,如果要查看最新的日志,就找命名最大的文件夹里的命名最大的文件。

发送日志文件

输出到设备本地的日志文件,需要上传到服务器才能查看。这里提供了简单的方案来上传日志文件,用户也可以使用更成熟的方案来收发日志文件。

上传

使用以下代码上传单个文件

let localSender=LocalSender(toIP: "192.168.31.243", appName: "test")
localSender.sendSingleFile(holderId: 0, fileId: 0, completeCallback: {
    debugPrint("send log file success!")
})

toIP参数设置服务器地址;appName参数用来适配mac应用,暂时随便传个字符串;holderId参数为日志所在文件夹名转为Int(上文提到过文件夹名及文件名为数字);fileId参数为文件名转为Int;completeCallback为上传完成后的回调。

使用以下代码上传全部文件

let localSender=LocalSender(toIP: "192.168.31.243", appName: "test")
localSender.sendAllFiles {
  debugPrint("all file sent")
}

每个LocalSender实例只能执行一次任务,要执行多次任务就要创建多个实例。

接收

首先需要安装Node.js,不了解的可自行百度

将项目目录下的localReceiver.js文件复制到用来接收日志文件的目录中,终端cd到该目录,运行以下命令运行服务器程序:

node localReceiver

每个连接都会创建一个文件夹,该连接中的日志都保存在该文件夹中,文件夹名字也是数字,不过和上面不同,数字大小并不表示日志的先后顺序。

查看

点击打印端app的open file按钮,选择上传的日志文件。

相关文章

  • Logcat-swift的使用

    logcat-swift是一个适用于苹果平台的轻量的日志打印方案,项目托管在:https://github.com...

  • iconfont的使用(下载使用)

    1、下载文件 2、在生命周期中引入项目 beforeCreate () { var domModule = ...

  • Gson的使用--使用注解

    Gson为了简化序列化和反序列化的过程,提供了很多注解,这些注解大致分为三类,我们一一的介绍一下。 自定义字段的名...

  • 记录使用iframe的使用

    默认记录一下----可以说 这是我第一次使用iframe 之前都没有使用过; 使用方式: 自己开发就用了这几个属...

  • with的使用

    下面例子可以具体说明with如何工作: 运行代码,输出如下

  • this的使用

    什么是this? this是一个关键字,这个关键字总是返回一个对象;简单说,就是返回属性或方法“当前”所在的对象。...

  • this的使用

    JS中this调用有几种情况 一:纯粹的函数调用 这是函数的最通常用法,属于全局性调用,因此this就代表全局对象...

  • ==的使用

    积累日常遇到的编码规范,良好的编码习惯,持续更新。。。 日常使用==用于判断的时候,习惯性将比较值写前面,变量写后...

  • this的使用

    1.默认绑定,就是函数立即执行。 函数立即执行就是指向window,但是如果是node环境,就是指向全局conso...

  • %in% 的使用

    写在前面:From 生信技能书向量难点之一:%in% 难点 (1)== 与 %in% 的区别== 强调位置,x和对...

网友评论

      本文标题:Logcat-swift的使用

      本文链接:https://www.haomeiwen.com/subject/fwcfuhtx.html