DVFloatingWindow 是一款简单而有效的工具,您可以直接从应用程序中查看日志。
您可以通过为每个日志创建单独的选项卡来管理它们,快速切换选项卡,并查看所有所需详细信息。此外,还有添加带有自定义处理器的按钮的机会,帮助您调试应用程序(例如,发送网络请求、重置设置等)。
将 DVFloatingWindow 包含到您的项目中有两种可能的方法
使用 CocoaPods
pod 'DVFloatingWindow'
pod install
来安装 pod手动方式
在您的 <Project name>-Prefix.pch
文件中启用 DVFloatingWindow。如果您想使其在整个项目中可见,请导入头文件。不要忘记在提交应用程序到 AppStore 之前禁用 DVFloatingWindow!
#define DV_FLOATING_WINDOW_ENABLE 1
// uncomment if you want to make FLoatingWindow accessible all over project
//#import "DVFloatingWindow.h"
首先,设置显示/隐藏窗口的手势(点击或长按)。
// to show/hide the window with 3 fingers tap
DVWindowActivationTap(3);
// to show/hide the window with 2 fingers long press for 0.5 second
DVWindowActivationLongPress(2, 0.5);
您也可以通过编程方式显示/隐藏窗口。
DVWindowShow();
DVWindowHide();
默认情况下,DVFloatingWindow 有一个 Default 记录器选项卡。将其记录下来与使用 NSLog 一样简单。
DVLog(@"Current date and time: %@", [NSDate date]);
在使用之前,您必须创建自定义记录器。任何记录器方法都接受 NSString *
作为记录器标识符作为参数。
DVLoggerCreate(@"My custom logger");
// and now you can log
DVLoggerLog(@"My custom logger", @"Here is current date again %@", [NSDate date]);
// a shorter version of previous macro
DVLLog(@"My custom logger", @"Hello");
// Default logger identifier is @"Default", so these two lines are similar
DVLLog(@"Default", @"This is an explicit way of logging to Default logger");
DVLog(@"This is an implicit way");
// to clean up all you've logged before
DVLoggerClear(@"Default");
// to delete logger if you don't need it anymore
DVLoggerRemove(@"My custom logger");
// you no longer have "My custom logger", so this line does nothing
DVLLog(@"My custom logger", @"You won't receive this message");
有关配置记录器的信息,请参阅 "配置" 部分。
如果您需要清理 NSUserDefaults、向服务器发送请求或模拟推送接收,您可以添加带有自定义处理器的按钮。
// Button title, handler
DVButtonAdd(@"Remove authorization token", ^{
[[NetworkManager sharedInstance] removeAuthorizationToken];
});
// go forward
DVTabNext();
// go back
DVTabPrevious();
// show the Default logger
DVTabSwitchToLogger(@"Default");
// show tab with buttons
DVTabSwitchToButtonsTab();
DVFloatingWindow有一些可配置选项。所有这些选项都是以 DVConfig 前缀开头的。
// you can get or set frame at any time:
CGRect dvFrame = DVConfigFrameGet();
dvFrame.origin.x = 30.0;
dvFrame.origin.y = 20.0;
DVConfigFrameSet(dvFrame);
// you can change all colors
DDLog(@"My old background color was %@", DVConfigBackgroundColorGet());
DVConfigBackgroundColorSet([UIColor grayColor]);
DDLog(@"My new background color is %@", DVConfigBackgroundColorGet());
// making it red
DVConfigTopBGColorSet ([UIColor redColor]);
DVConfigTopMenuBGColorSet ([UIColor darkGrayColor]);
DVConfigTopTextColorSet ([UIColor whiteColor]);
DVConfigRightCornerColorSet ([UIColor redColor]);
您可以设置或获取默认电子邮件选项。
DVConfigEmailToRecipientsSet(@[@"[email protected]", @"[email protected]"]);
DVConfigEmailCcRecipientsSet(@[@"[email protected]"]);
DVConfigEmailSubjectSet(@"My app logs");
DVConfigEmailMessageBodySet(@"Here are some logs:");
DVConfigEmailIsMessageBodyHTMLSet(NO);
记录器只有设置方法,第一个参数始终是 loggerKey。
DVConfigLoggerLatestMessageOnTop(@"Default", YES);
DVConfigLoggerFont(@"Pushes logger", [UIFont systemFontOfSize:17.0]);
当您的应用准备发布时,只需禁用DVFloatingWindow。
#define DV_FLOATING_WINDOW_ENABLE 0
iOS 5.0及以上版本
要将所有的NSLog发送到Xcode控制台和DVFloatingWindow,只需将此宏添加到<项目名称>-Prefix.pch
文件中。
#define NSLog(format, ...) DVLog(format, ##__VA_ARGS__); NSLog(format, ##__VA_ARGS__)
CocoaLubmerjack是一个开源的iOS和OS X的日志记录工具。要集成DVFloatingWindow与它,您应该获取DVFloatingLumberjack日志记录器。
发现了错误?有功能请求?请提交一个问题。
DVFloatingWindow采用了MIT许可证。有关更多信息,请参阅LICENSE文件。