Logcat-swift的使用

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按钮,选择上传的日志文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容

  • 鹧鸪天:冬梦成诗 词/金文丰 北国风光万里新,涂山绣岭绘寒尘。 梅开半壁红霞染,竹翠千峰玉树芬。 雪飘舞,叶飞纷,...
    A金文丰阅读 393评论 0 0
  • 月朦胧, 酒微醺, 仙娥宫中见歌舞。 乐哉, 最喜兔儿无赖, 嬉戏吾与李白。 夜微凉, 影独孤, 寒烟笼月独徘徊。...
    望月常思乡阅读 202评论 1 7
  • 简介:所谓的简介就是介绍一下文章类型,和我。嗯,这篇文算是青春,校园和一点点恋爱小说吧,连载,不会弃的。 ...
    落叶知秋JKR阅读 283评论 0 0
  • 最能能唤醒人悠长回忆的莫过于听觉、和味觉。朱军曾在访谈中说,可能自己都快要忘记家乡的样子,可是味觉记得。那一碗一红...
    sunshine沄阅读 257评论 0 0