OC分级日志工具,支持4种日志级别,提供两种持久化方案

源码地址: github.com/FinderTiwk/…

使用

#import "Log4OC.h"//DEBUGLog(建议开发调试使用)DEBUGLog(@"这是一个DEBUG级别日志");DEBUGLog(@"FinderTiwk", @"这是一个带作者的的DEBUG级别日志");//INFOLog(建议记录关键信息使用)INFOLog(@"这是一个INFO级别日志");INFOLog(@"FinderTiwk", @"这是一个带作者的的INFO级别日志");//WARNINGLog(建议记录警告敏信息使用)WARNINGLog(@"这是一个WARNING级别日志");WARNINGLog(@"FinderTiwk", @"这是一个带作者的的WARNING级别日志");//ERRORLog(建议记录发生异常错误时使用)ERRORLog(@"这是一个ERROR级别日志");ERRORLog(@"FinderTiwk", @"这是一个带作者的的ERROR级别日志");----------------------Console Print-----------------------
[?DEBUG] 2018-11-14 12:53:45: 这是一个DEBUG级别日志
[?DEBUG] 2018-11-14 12:53:45(FinderTiwk): 这是一个带作者的的DEBUG级别日志
[?INFO] 2018-11-14 12:53:45: 这是一个INFO级别日志
[?INFO] 2018-11-14 12:53:45(FinderTiwk): 这是一个带作者的的INFO级别日志
[⚠️WARNING] 2018-11-14 12:53:45: 这是一个WARNING级别日志
[⚠️WARNING] 2018-11-14 12:53:45(FinderTiwk): 这是一个带作者的的WARNING级别日志
[?ERROR] 2018-11-14 12:53:45: 这是一个ERROR级别日志
[?ERROR] 2018-11-14 12:53:45(FinderTiwk): 这是一个带作者的的ERROR级别日志
复制代码

偏好设置

0x00 日志级别

LogLevel DESC
LogLevelDEBUG 默认; 显示包括(DEBUGLog,INFOLog,WARNINGLog,ERRORLog的Log)
LogLevelINFO 显示包括(INFOLog,WARNINGLog,ERRORLog的Log)
LogLevelWARNING 显示包括(WARNINGLog,ERRORLog的Log)*
LogLevelERROR 只显示ERRORLog的log
LogLevelNONE 关闭所有日志

#ifdef __OPTIMIZE__//当打包时建议去除DEBUG级别的日志setLogLevel(LogLevelINFO);
#endif//获取当前日志级别
LogLevel level = currentLogLevel();复制代码

0x01 日志模式

  • mode: 日志模式

    • 0: 只打印到控制台,DEFAULT
    • 1: 将日志保存到Sqlite中
    • 2: 将日志保存到本地文件中
  • clean: 当日志模式不是0时,是否自动清理日志
    • 0: 不自动清理
    • 大于0: 自动清理当前日期之前的n天的日志
  • both: 当日志模式不是0时,日志持久化时是否同时打印到控制台
    • YES: 同时输出到控制台和文件 (DEBUG时用)
    • NO: 只输出到文件
extern void setLogMode(NSUInteger mode,NSUInteger clean, BOOL both);
复制代码

0x02 日志文件切割

当日志模式为2存储为本地文件时,设置日志文件大小阀值,K为单位, default 1024K/1M,当单个.log文件大于这个阀值时,会自动生成新的文件写入。

日志将会保存在应用沙盒中,名称例如: 2018_xx_xx-1.log ,2018_xx_xx-2.log

extern void setLogMaxSize(NSUInteger threshold);
复制代码

日志过滤

  1. 按日志级别过滤
  2. 按写日志的作者名称过滤
  3. 按时间过滤

0x00 控制台模式下

日志级别: 可以通过打印出的日志前缀用肉眼观测,或者在控制台里COMMAND+F搜索关键字(DEBUG,INFO,WARNING,ERROR)

作者名称: 在控制台里COMMAND+F搜索作者名称

时间: 控制台日志输出按时间顺序输出,自己查看日志前缀里的时间戳

0x01 数据库模式下

数据库表结构,表名Logger

字段 数据类型 默认值 描述
level INTEGER 日志级别
time DATE CURRENT_TIMESTAMP 打印时间
content TEXT 日志内容
author TEXT 作者,DEAFULT Apple

日志级别:

SELECT * FROM `Logger` WHERE level = 2
复制代码

作者名称:

SELECT * FROM `Logger` WHERE author = 'FinderTiwk'
复制代码

时间:

SELECT * FROM `Logger` WHERE time > '2018-11-13 12:12:12'
复制代码

多条件过滤:

SELECT * FROM `Logger` WHERE author = 'FinderTiwk' AND level = 2 AND time > '2018-11-13 12:12:12'
复制代码

0x02 本地文件模式

使用Mac系统自带的Console打开2018_xx_xx-1.log文件,通过关键字搜索

如果图裂了,请看 user-gold-cdn.xitu.io/2018/11/16/…

转载于:https://juejin.im/post/5bee1cea6fb9a049d81b6c98

iOS轻量分组日志工具 Log4OC相关推荐

  1. api-hook,更轻量的接口测试工具

    前言 在网站的开发过程中,接口联调和测试是至关重要的一环,其直接影响产品的核心价值,而目前也有许多技术方案和工具加持,让我们的开发测试工作更加便捷.接口作为数据传输的重要载体,数据格式和内容具有多样性 ...

  2. 国产LINUX服务器操作系统openEuler下的轻量开源虚拟化工具stratovirt

    StratoVirt设计 概述 StratoVirt是一种基于Linux内核的虚拟机(KVM)的开源轻量级虚拟化技术: StratoVirt在保持传统虚拟化的隔离能力和安全能力的同时,降低了内存资源消 ...

  3. GoAccess轻量nginx日志分析工具

    什么是GoAccess GoAccess 是一款开源.实时,运行在命令行终端下的 Web 日志分析工具. 该工具提供快速.多样的 HTTP 状态统计. 分析结果,可以通过 XShell 等客户端工具查 ...

  4. 轻量型日志采集器 Filebeat基本使用

    文章目录 1 介绍 2 安装 2.1 下载安装 3 收集日志配置 4 启动 5 举例 5.1 Filebeat收集日志并输出到控制台 5.2 Filebeat收集Nginx运行日志并输出到es 5.3 ...

  5. mysql轻量在线管理工具_重磅推荐!我在Github找到一个超级轻量、灵活的SQL工具...

    开源最前线(ID:OpenSourceTop) 猿妹综合整理 综合自:https://github.com/HVF/franchise 今天,猿妹和大家推荐一款轻量级但功能强大的 SQL 工具,带有 ...

  6. 不用下载就能使用的4款轻量在线PS工具

    PS是一种非常熟悉的设计工具,也是一种在设计领域占有重要地位的软件,如常见的产品设计.平面设计或摄影后期设计,几乎与PS的使用密不可分.PS本身也有很多功能,每个人的日常设计图纸.图纸修复等工作都可以 ...

  7. CYQ.Data 轻量数据层之路 使用篇-辅助工具枚举生成器 视频 C (二十)

    说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 优雅V1.4 辅助工具(十)   的附加视频教程. 本次视频介绍了使用工具创建存储过程/生成日志表/生成枚举文件等相关操作,同时以示例实 ...

  8. 史上最轻量​!阿里新型单元测试Mock工具开源了

    简介:为了探索更轻量易用的Mock测试手段,阿里云云效团队尝试给工具减负,在主流Mock工具的基础上让Mock的定义和置换干净利落,最终设计了一款极简风格的测试辅助工具TestableMock,无需初 ...

  9. 轻量、简单、易容、免费的bug管理工具-delbug管理

    轻量.简单.易容.免费的bug管理工具-delbug管理 在整个软件开发周期中测试的重要性不言而喻,它直接决定了软件的健壮性和可用性.在如今新软件层出不穷,软件迭代不断加快的时代.完善的测试更是显得弥 ...

最新文章

  1. YOLOS:重新思考Transformer的泛化性能
  2. 综述 | 语言分析技术在社会计算中的应用
  3. cve-2018-1273 Spring Expression Language 漏洞分析
  4. python培训骗局-python 无良培训忽悠骗局知多少?
  5. 在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标...
  6. [ USACO 2017 FEB ] Why Did the Cow Cross the Road III (Gold)
  7. 读书 - Delphi下深入Windows核心编程 第二天
  8. python中常见的双下方法_python中常见的双下方法_python面向对象(5)__特殊双下方法...
  9. Boost.Function 库示例
  10. MySQL连接方式:长连接或者短连接
  11. HDU 5919 分块做法
  12. AIX操作系统版本小知识(转载)
  13. 【非科班告诉你】前端自学从小白到入门
  14. 字符设备驱动 架构分析
  15. appium 处理滑动的方法
  16. 【李宏毅机器学习】01:机器学习介绍 Introduction
  17. Codeforces Education Round 11
  18. pascal语言基础(一)
  19. 需求分析及技术方案设计
  20. 黄峥:我的人生经历和创业理念

热门文章

  1. Vue + webpack 项目实践
  2. Mysql 多表联合查询效率分析及优化
  3. 【java开发系列】—— JDK安装
  4. 《Effective C++》读书笔记(第一部分)
  5. 程序员面试题精选100题(56)-C/C++/C#面试题(4)
  6. 方差/标准差/四分位数/z-score公式
  7. 【OpenCV3】级联分类器训练——traincascade快速使用详解
  8. [USACO06DEC]牛的野餐Cow Picnic DFS
  9. 用Jmeter做微信小程序项目接口测试【案例】
  10. python 字符串格式化,使用f前缀