iOS 日志管理异常捕获组件LFLogManager
一、功能
1.分级打印保存
解决一大堆重要、不重要打印信息在控制台混为一团的尴尬局面。可设置仅打印某级别及以上的信息。分为5类打印:
DDLogError(@"打印并保存特别重要信息"); DDLogWarn(@"打印并保存重要信息"); DDLogInfo(@"打印并保存一般信息"); DDLogDebug(@"打印并保存很一般信息"); DDLogVerbose(@"打印并保存无足挂齿信息");
2.日志浏览与删除及设置打印级别
可视化界面都封装好了,无需动手
只需要跳到LFLogListController这个界面即可,这些功能都在这个界面做好了。
LFLogListController *vc = [[LFLogListController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
说明:比如设置打印级别为DDLogLevelInfo时则只打印保存DDLogLevelInfo及以上级别的信息
3.捕获异常崩溃并保存日志
使用者不用管,自动记录的
4.自定义打印级别和日志存储路径
见下面使用中的介绍
二、使用
1. pod 'LFKit/Component/LFLogManager'或源码拖进工程
2.在pch文件中加入这些
#importextern DDLogLevel ddLogLevel;
//自定义log1(如果不自定义log级别和文件路径,则不需要下面代码) #define LFLOG_LEVEL1 (1 << 5) #define LFLOG_LEVEL2 (1 << 6) #define LFLog1(frmt, ...) LOG_MAYBE(YES, ddLogLevel, (1 << 0), LFLOG_LEVEL1, __PRETTY_FUNCTION__,frmt, ## __VA_ARGS__) #define LFLog2(frmt, ...) LOG_MAYBE(YES, ddLogLevel, (1 << 1), LFLOG_LEVEL2, __PRETTY_FUNCTION__,frmt, ## __VA_ARGS__)
//自定义log2(如果不自定义log级别和文件路径,则不需要下面代码) #define XXLOG_LEVEL1 (1 << 7) #define XXLOG_LEVEL2 (1 << 8) #define XXLog1(frmt, ...) LOG_MAYBE(YES, ddLogLevel, (1 << 0), XXLOG_LEVEL1, __PRETTY_FUNCTION__,frmt, ## __VA_ARGS__) #define XXLog2(frmt, ...) LOG_MAYBE(YES, ddLogLevel, (1 << 1), XXLOG_LEVEL2, __PRETTY_FUNCTION__,frmt, ## __VA_ARGS__)
3.在应用启动时加如下代码
[LFLogManager shareInstance].maximumFileSize = 1024; [[LFLogManager shareInstance] install];
//自定义log1(如果不自定义log级别和文件路径,则不需要下面代码) NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *baseDir = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; NSString *filePath = [baseDir stringByAppendingPathComponent:@"Logs/LFLog"]; [[LFLogManager shareInstance] installWithLevels:@[@(LFLOG_LEVEL1),@(LFLOG_LEVEL2)] path:filePath];
//自定义log2(如果不自定义log级别和文件路径,则不需要下面代码) NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *baseDir2 = ([paths2 count] > 0) ? [paths2 objectAtIndex:0] : nil; NSString *filePath2 = [baseDir2 stringByAppendingPathComponent:@"Logs/LFLog2"]; [[LFLogManager shareInstance] installWithLevels:@[@(XXLOG_LEVEL1),@(XXLOG_LEVEL2)] path:filePath2];
说明:
这只是LFKit的一个子库,LFKit地址https://github.com/zhanglinfeng/LFKit
需要LFKit中所有自定义控件的pod 'LFKit/Component'
需要总库的 pod 'LFKit'