您的位置:首页 > 移动开发 > IOS开发

iOS 日志管理异常捕获组件LFLogManager

2018-02-02 21:09 501 查看

一、功能

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文件中加入这些

#import <CocoaLumberjack/DDLog.h>
extern 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'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: