Swift 优雅的打印Log
iOS开发中Log打印是最为常见的调试方式,没有之一. Swift提供了两种打印方式
public func print(_ items: Any..., separator: String = default, terminator: String = default)public func debugPrint(_ items: Any..., separator: String = default, terminator: String = default)
复制代码
debugPrint可以自己识别是否是release环境,如果是release环境就不会打印 虽然Swift贴心的提供了debugPrint这个方法,但是对于Log太多的项目来说,找到自己的打印信息还是费点眼睛的. 如果打印出时间,文件,方法那么就更好了 废话不多说,直接上代码 首先需要在Build Setting -> Other Swift Flags设置一下
public func OKPrint( _ object: @autoclosure() -> Any?,_ file: String = #file,_ function: String = #function,_ line: Int = #line) {#if DEBUGguard let value = object() else {return}var stringRepresentation: String?if let value = value as? CustomDebugStringConvertible {stringRepresentation = value.debugDescription}else if let value = value as? CustomStringConvertible {stringRepresentation = value.description}else {fatalError("gLog only works for values that conform to CustomDebugStringConvertible or CustomStringConvertible")}let gFormatter = DateFormatter()gFormatter.dateFormat = "HH:mm:ss:SSS"let timestamp = gFormatter.string(from: Date())let queue = Thread.isMainThread ? "UI" : "BG"let fileURL = NSURL(string: file)?.lastPathComponent ?? "Unknown file"if let string = stringRepresentation {print("✅ \(timestamp) {\(queue)} \(fileURL) > \(function)[\(line)]: \(string)")} else {print("✅ \(timestamp) {\(queue)} \(fileURL) > \(function)[\(line)]: \(value)")}#endif
}
复制代码
转载于:https://juejin.im/post/5aa53fb36fb9a028bf04f260
Swift 优雅的打印Log相关推荐
- springboot开启debug日志_SpringBoot 如何优雅的打印日志?
一.打印日志注意事项 1.使用 Slf4j 注解 这个代码相信大家都很熟悉,你是否曾经看到或者自己因 copy 而 没有改变"当前类名"? 如果你们项目用到 lombok ,可以在 ...
- 如何优雅的打印日志?
目录 一.背景 二.日志目录的设置 三.准备工作 1.建表 2.准备Springboot工程 3.日志目录定义 4.ThreadLocalHolder 5.BaseRequest 6.BaseResu ...
- HarmonyOS 怎样打印log/日志的打印
HarmonyOS 怎样打印log HarmonyOS提供了HiLog日志系统,所以我们可以使用HiLog 来打印日志 从HiLog的源码可以看到里面有一个HiLogLabel 下面在跳到HiLogL ...
- linux结束打印机进程,Linux系统,如何知道哪个进程在打印log?
Linux系统,如何知道哪个进程在打印log? 关注:155 答案:2 mip版 解决时间 2021-02-07 10:18 提问者彼岸独舞 2021-02-06 23:42 调试嵌入式机器的时候 ...
- Android 打印log 在logcat 看不到
今天调试一个问题,因为是插件,只能通过打印log 定位问题. 但是打印了log 一直没有看到. 代码如下: Log.d("","aaaa24"); 后来发现是需 ...
- android jni打印log信息
今天,讲讲在jni中如何打印logxx,用来进行调试. 一.实现 1.修改Android.mk文件. 在这个配置文件中我们加入如下一行代码: LOCAL_LDLIBS += -llog 注意:这行代码 ...
- 在Android NDK下打印log
在Android Studio NDK中打印log 示例 // 导入必须的android/log.h头文件 #include <android/log.h>// 可选.定义方便使用的宏 # ...
- printf打印二进制_优雅地打印 HEX 数据
优雅地打印 HEX 数据 " 代码片段. 在调试的时候经常要打印内存里的数据,来看看数据及格式是否在预期范围内:以及在调试二进制协议的时候,经常需要将协议包里的数据打印出来,这个时候就会涉及 ...
- Android.mk、Makefile、Cmake打印log
1.Android.mk$(info "--------------before------------------") TEST_MODULE_SUPPORT := yes // ...
最新文章
- 程序员学霸!top2大学毕业!不到30岁第一次升P9失败!挫折感极强,怀疑人生?网友:没升P7的我,不要面子的吗??...
- sys.argv[n] (终端运行python文件第n个参数) 在 pycharm 中的应用
- 万物新生(爱回收)递交赴美上市招股书,平台服务收入年复合增长达627.7%
- 《JavaScript语言精髓与编程实践》读书笔记二
- noip2017d2t2
- Java命令学习系列(零)——常见命令及Java Dump介绍
- 排序与查找 详细分析
- Spring AOP AspectJ 代码实例
- 关于Error.captureStackTrace
- HTTP所承载的货物(图像、文本、软件等)要满足的条件
- FFmpeg编解码常用函数ffmpeg av_parser_parse2()函数
- Cocos Creator | 碰撞检测优化-四叉树
- 2014年服装设计短训班(周末班)招生简章-北京服装学院培训中心
- opencv给图片加中文水印
- 少儿学python真的有用吗_如何看待海淀妈妈们认为Python是儿童才学的低端编程?...
- 《详细》使用ventoy制作linux to go和win to go放在u盘中《即走即用的便携式系统》,自带系统引导
- 【**背包dp**】
- 海飞丝头发的研究和实现
- 期货开户每日无负债结算制度
- 百度阿拉丁计划 - 看上去很美
热门文章
- 【转】 IIS_WPG 用户组权限问题
- 转贴:电子商务如何提升网站转化率之:谷歌9条
- Windows系统上3种连接Docker虚拟机的方法
- 在mysql怎样查询地址和电话_Mysql数据查询
- pandas object转float_Pandas中文官档~基础用法6
- pcm 降采样_Android_android downsample降低音频采样频率代码,使用Android AudioRecord 录制PCM文 - phpStudy...
- rust腐竹是什么意思_学习Rust 集合与字符串
- python图像处理模糊_Python+OpenCV图像处理之模糊操作
- mysql 子查询模糊匹配_sql中的查询(模糊查询,子查询,联表查询)
- oracle中over()分析函数的用法