HDWindowLogger
在 iOS 端将输出日志 log 悬浮显示在屏幕上,可以生成日志文件分享,方便在没有连接 xcode 的情况下调试信息。可以分享、筛选 log 等操作。
iOS 端将在屏幕上显示输出日志 log,并可以生成日志文件进行分享,便于在设备未连接 xcode 的情况下调试信息。日志信息可以筛选和分享。
**从 2.0 版本开始采用 Masonry 自动布局,如果不想引用,可以使用 1.6.11 版本。Version 2.0 began to use Masonry automatic layout, if you don't want to quote, you can use version 1.6.11. **
英文文档 | Swift 版本
中文文档 | Swift版本
英文介绍
项目地址:https://github.com/DamonHu/HDWindowLogger
显示效果 Gif
除了在屏幕上显示外,您还可以设置是否自动滚动日志以进行调试,或者可以将输出日志分享到微信、twitter 等进行离线查看。同时,您可以搜索输出内容,敏感内容可以加密密码,共享文件也加密,可以在线使用密码解密。
I. 安装
您可以选择使用cocoaPod进行安装,或者直接将源文件下载到项目中。
1.1, cocoaPod 安装
pod 'HDWindowLogger'
1.2, 文件安装
您可以将 HDWindowLogger
文件夹中的文件拖拽到项目下的对应文件夹中。
II. 使用
1、导入头文件
#import "HDWindowLogger.h"
2、显示浮动窗口
[HDWindowLogger show];
3、打印日志内容
三种输出方法的字体颜色不同,对应的printLog类型也不同。
HDDebugLog(@"sss: %@",dic); //Debug output, the content will not be written to the window, only output in xcode
HDNormalLog(@"点击按钮"); //Log's textColor is green
HDWarnLog(@"点击按钮"); //log's textColor is yellow
HDErrorLog(@"点击按钮"); //Log's textColor is red
HDPrivacyLog (@"加密数据") // Output of encrypted data, the specific encryption method is described in the following encryption
输出格式
13:45:00.153 > 点击按钮
III. 更多设置
1、设置是否输出所有信息
[HDWindowLogger defaultWindowLogger].mCompleteLogOut = true;
如果设置为输出所有调试信息,输出格式如下,包括输出文件、调用行数和调用的函数
10:00:07.268 > [File:(ViewController.m)]:[Line:(49):[Function:(-[ViewController p_click])]]-Log:
点击按钮
2、是否在Xcode底部调试栏中同步输出内容
[HDWindowLogger defaultWindowLogger].mDebugAreaLogOut = true
3、获取日志信息内容
[HDWindowLogger defaultWindowLogger].mLogDataArray
4、清除日志
[HDWindowLogger cleanLog];
5、隐藏整个日志窗口
[HDWindowLogger hide];
6, 仅隐藏日志输出窗口
[HDWindowLogger hideLogWindow];
7, 设置日志最大记录数,0为不限制,默认值是0
[HDWindowLogger setMaxLogCount:100];
IV. 敏感信息输出加密和解密
如果您希望在调试时用户看不到敏感信息,可以通过两个简单步骤进行加密:
// 1. Set the encryption password, 32 characters
[HDWindowLogger defaultWindowLogger].mPrivacyPassword = @"12345678901234561234567890123456";
// 2, output encrypted content
HDPrivacyLog (@"This is test data 222 for encrypted data")
4.2 解密显示窗口内容
设置完成后,显示窗口中的显示为 此内容已加密,请解密后查看
,输入设置的加密密码并单击解密以显示正常的加密内容。
4.1. 解密共享文件
- 如果在显示窗口中已解密数据,此刻共享文件的内容将不再加密,并将显示所有内容。
- 如果在显示窗口中没有解密,此刻共享的文件内容为AES加密内容,您可以通过搜索
AES在线解密网站
来解密内容,设置如下:
- 模式:CBC
- 填充:Pkcs7
- 数据块:128位
- 偏移:
abcdefghijklmnop
- 编码:Base64
- 字符集:UTF8
- 密码:您在SDK中自行设置的密码
然后点击“解密”。
以下是一些推荐的网站,您也可以自行在网上搜索。
第五部分:其他说明
- 为了方便查看,分为普通、警告和错误三种类型,分别对应三种不同的颜色以便于查看。
- 点击相应的单元格可以直接将输出日志复制到系统剪贴板。
- 分享被调用的系统分享。您可以分享哪些软件取决于您的手机上安装了哪些软件。
简体中文介绍
项目地址:https://github.com/DamonHu/HDWindowLogger
在开发微信小程序的过程中,小程序的悬浮调试工具调用了特别舒服,想找一个iOS上的,找到了一个类似的HAMLogOutputWindow,看了下源码,是用textview
编写的,但是并不能滚动查询和操作。同时考虑到打印网络请求输出量还是很大的,为了性能和后续扩展,所以用Tableview
重写了一个。
展示效果GIF图
除了在屏幕上显示,可以设置是否自动滚动日志以便调试,也可以将输出的日志分享到微信、twitter等程序,以便离线查看。同时可以搜索输出内容,敏感内容可以设置密码进行加密,分享出来的文件也会进行加密,可以通过密码在线解密
一、安装
您可以选择使用cocoaPod进行安装,也可以直接下载源文件并将其拖入项目中。
1.1、cocoaPod安装
pod 'HDWindowLogger'
1.2、文件安装
您可以将工程底下的HDWindowLogger
文件夹内的文件拖入项目中。
二、使用
仅需简单三步即可调用显示
1、导入头文件
#import "HDWindowLogger.h"
2、显示悬浮窗
[HDWindowLogger show];
3、 打印日志内容
三种输出方式字体颜色显示不同,对应的printLog不同的类型
HDDebugLog(@"sss: %@",dic); //调试输出,不会输出到窗口,只会显示在xcode调试区
HDNormalLog(@"点击按钮"); //日志为绿色
HDWarnLog(@"点击按钮"); //日志为黄色
HDErrorLog(@"点击按钮"); //日志为红色
HDPrivacyLog(@"点击按钮") //加密数据的输出,具体加密方式在下面的加密中说明
输出格式
13:45:00.153 > 点击按钮
三、更多设置
通过其他设置可以实现更多功能
1、设置是否输出全部信息
[HDWindowLogger defaultWindowLogger].mCompleteLogOut = true;
如果设置为输出全部调试信息,那么输出的格式是下面这样的,包含了输出文件、调用的行数、和调用的函数
10:00:07.268 > [File:(ViewController.m)]:[Line:(49):[Function:(-[ViewController p_click])]]-Log:
点击按钮
2、是否在xcode底部的调试栏同步输出内容
[HDWindowLogger defaultWindowLogger].mDebugAreaLogOut = true
3、获取log信息内容
[HDWindowLogger defaultWindowLogger].mLogDataArray
4、清空log
[HDWindowLogger cleanLog];
5、隐藏整个log窗口
[HDWindowLogger hide];
6、仅隐藏log输出窗口
[HDWindowLogger hideLogWindow];
7、设置log最大记录数,0为不限制,默认不限制
[HDWindowLogger setMaxLogCount:100];
四、敏感信息输出加密和解密
如果存在敏感信息,不希望用户或手机调试时看到,简单两步就可以设置加密
//1、设置加密密码,32个字符数字
[HDWindowLogger defaultWindowLogger].mPrivacyPassword = @"12345678901234561234567890123456";
//2、输出加密内容
HDPrivacyLog(@"这个是加密数据的测试数据222")
4.2、显示窗口内容解密
设置后,在显示窗口中的显示为“该内容已加密,请解密后查看”,输入设置的加密密码然后点击解密后即可显示正常的加密内容。
4.1、分享文件解密
- 如果在显示窗解密了数据,此时分享的文件内容不会加密,会显示所有内容。
- 如果在显示窗中未解密,此时分享出的文件内容为AES加密内容,可以搜索
AES在线解密的网站
去解密内容,设置参照下图:
- 模式: CBC
- 填充: Pkcs7
- 数据块: 128位
- 偏移量: abcdefghijklmnop
- 编码: Base64
- 字符集: UTF8
- 密码: 你自己在sdk中设置的密码
然后点击解密即可。
这里推荐几个在线的网站,你也可以自己百度
五、其他说明
- 为了查看方便,分为普通、警告、错误三种类型,对应了三种不同的颜色,以便查看
- 点击对应的cell可以直接将输出log复制到系统剪贴板
- 分享调用的系统分享,可以分享到哪个软件取决于你手机上安装的有哪些软件。