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):处理日志过度增长
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
随机推荐
- python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel
特色简介 xlrd主要用来读excel,针对.xls格式: xlwt主要用来写excel,针对.xls格式,超出excel 的单格内容长度上限32767,就会报错: xlutils结合xlrd可以达到 ...
- DevExpress.XtraTreeList 小结
搞了半天才绑定好,没有弄清楚父子之间的关系 <dx:ASPxTreeList ID="ASPxTreeList1" runat="server" Auto ...
- leetcode 136 137 Single Number
题目描述(面试常考题) 借助了异或的思想 class Solution { public: int singleNumber(vector<int>& nums) { ; ; i ...
- find命令的基本用法
linux 中find 常用示例解析 find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression] 其实[-H] [-L] [- ...
- linux命令(14):ifup/ifdown/ip addr命令
开启网卡:ifup eth0 关闭网卡:ifdown eth0 查看网卡接入状态:ip addr[可查看哪块网卡up/down状态]
- AC自动机算法
AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一.一个常见的例子就是给出n个单词,再给出一段 ...
- Exchanger学习
Java并发新构件之Exchanger JDK API Exchaner 介绍 JDK API 解释 A synchronization point at which threads can pair ...
- oracle 导入dmp文件
/*第1步:创建临时表空间 */ create temporary tablespace webdata_temp tempfile 'D:\oracle\product\10.2.0\oradat ...
- 软件包管理yum
(1)yum基础源 1)国内yum源地址 mirrors.aliyun.com //阿里有基础源和epel源 mirrors.163.com 查看使用帮助 2)更换yum源为阿里云(Centos7为例 ...
- JDBC连接执行mysql存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,
分析:JDBC在调用存储过程时不光用户要有execute的权限,还需要对mysql.proc具有访问权限.否则它无法访问metadata 解决方案:给数据库用户赋权,赋执行mysql.proc表的se ...