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文件中加入这些
#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 = ; [[LFLogManager shareInstance] install];
//自定义log1(如果不自定义log级别和文件路径,则不需要下面代码)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *baseDir = ([paths count] > ) ? [paths objectAtIndex:] : 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] > ) ? [paths2 objectAtIndex:] : 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'
iOS 日志管理异常捕获组件LFLogManager的更多相关文章
- iOS之 APP异常捕获反馈给服务器
在我们开发的app中, 不可避免的, 有时候用户使用软件会崩溃. 我们就需要捕获异常, 可以在入口类中加入相应的代码, 可以在每次用户打开程序的时候, 检查一下沙盒中是否有崩溃日志, 如果有, 可以 ...
- iOS OC应用异常捕获,崩溃退出前返回信息给后台
第三方的了,有友盟,腾讯的bugly 查了一下网上类似的代码很多,在借鉴前辈的代码后,组合了一下: 1.捕获异常信息 2.获得当前日期,版本,系统 3.获得出bug的视图控制器转为字符串 4.将前3条 ...
- 使用Sentry集中化日志管理
在调试程序中,通过日志分期来排查BUG是一个重要手段,它可以说是程序调试的利器. 关于日志管理 随着应用组件变多,那么各coder对输出日志五花八门,有写入stdout,有写stderr, 有写到sy ...
- 谈一下Docker与Kubernetes集群的日志和日志管理
本文的测试环境为CentOS 7.3,Kubernetes集群为1.11.2,安装步骤参见kubeadm安装kubernetes V1.11.1 集群 日志对于我们管理Kubernetes集群及其上的 ...
- iOS异常捕获
文章目录 一. 系统Crash 二. 处理signal 下面是一些信号说明 关键点注意 三. 实战 四. Crash Callstack分析 – 进⼀一步分析 五. demo地址 六. 参考文献 前言 ...
- .NET Core通过过滤器和中间件两种方式实现全局异常捕获和日志记录
1.一共有五类过滤器IAsyncAuthorizationFilter IAsyncResourceFilter IAsyncActonFilter IAsyncExceptionFilter ...
- Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息
Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息 1.1. 异常的处理模式exit continue undo模式 1 1.2. 捕获所有异常使用 DECLARE ...
- ABP(现代ASP.NET样板开发框架)系列之8、ABP日志管理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- SQL Server中的事务日志管理(7/9):处理日志过度增长
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
随机推荐
- Django【进阶】分页功能Pagination
项目中,我们需要很多非业务逻辑的功能,例如分页功能,而且此类功能移植性很好,可以在不同的项目中使用,所以整理好这些功能会一定程度上提高开发效率,下面是分页功能代码,使用时,可单独放在utils目录 & ...
- 使用GDB命令行调试器调试C/C++程序【转】
转自:https://linux.cn/article-4302-1.html 编译自:http://xmodulo.com/gdb-command-line-debugger.html作者: Adr ...
- expect 实现iterm2自动加载pem登录跳板机
#!/usr/bin/expect set timeout spawn expect { "connecting (yes/no)?" { send "yes\r&quo ...
- 【ZJOI2016】大森林
这题理论上可以用ETT,但是用LCT建虚点可以解决这个问题. 对于最晚的操作1建立一个虚点,然后把操作0挂上去. #include<bits/stdc++.h> ; using names ...
- UVALive 7040 Color
题目链接:LA-7040 题意为用m种颜色给n个格子染色.问正好使用k种颜色的方案有多少. 首先很容易想到的是\( k * (k-1)^{n-1}\),这个算出来的是使用小于等于k种颜色给n个方格染色 ...
- linux命令(27):cat命令
实例一:把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里 cat -n log2012.log log2013.log 实例二:把 log2012.log 和 ...
- Linux非常用命令
查看系统版本(64位还是32位版本) uname -a 或 more /proc/version 执行结果
- z-index失效的情况
1.父标签 position属性为relative: 2.问题标签无position属性(不包括static): 3.问题标签含有浮动(float)属性. 4.问题标签的祖先标签的z-index值比较 ...
- javascript大神修炼记(2)——运算符
读者朋友们好,前面我已经大概的了解了Javascript的作用以及一些基本的函数声明与变量声明,今天我们就接着前面的内容讲解,我们就来看一下javscript的逻辑(正序,分支,循环)以及一些简单的运 ...
- 找不到 libgtk-x11-2.0.so.0
找不到 libgtk-x11-2.0.so.0 安装 yum groupinstall "Development Tools" yum install gtk+-devel gtk ...