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相关推荐

  1. springboot开启debug日志_SpringBoot 如何优雅的打印日志?

    一.打印日志注意事项 1.使用 Slf4j 注解 这个代码相信大家都很熟悉,你是否曾经看到或者自己因 copy 而 没有改变"当前类名"? 如果你们项目用到 lombok ,可以在 ...

  2. 如何优雅的打印日志?

    目录 一.背景 二.日志目录的设置 三.准备工作 1.建表 2.准备Springboot工程 3.日志目录定义 4.ThreadLocalHolder 5.BaseRequest 6.BaseResu ...

  3. HarmonyOS 怎样打印log/日志的打印

    HarmonyOS 怎样打印log HarmonyOS提供了HiLog日志系统,所以我们可以使用HiLog 来打印日志 从HiLog的源码可以看到里面有一个HiLogLabel 下面在跳到HiLogL ...

  4. linux结束打印机进程,Linux系统,如何知道哪个进程在打印log?

    Linux系统,如何知道哪个进程在打印log? 关注:155  答案:2  mip版 解决时间 2021-02-07 10:18 提问者彼岸独舞 2021-02-06 23:42 调试嵌入式机器的时候 ...

  5. Android 打印log 在logcat 看不到

    今天调试一个问题,因为是插件,只能通过打印log 定位问题. 但是打印了log 一直没有看到. 代码如下: Log.d("","aaaa24"); 后来发现是需 ...

  6. android jni打印log信息

    今天,讲讲在jni中如何打印logxx,用来进行调试. 一.实现 1.修改Android.mk文件. 在这个配置文件中我们加入如下一行代码: LOCAL_LDLIBS += -llog 注意:这行代码 ...

  7. 在Android NDK下打印log

    在Android Studio NDK中打印log 示例 // 导入必须的android/log.h头文件 #include <android/log.h>// 可选.定义方便使用的宏 # ...

  8. printf打印二进制_优雅地打印 HEX 数据

    优雅地打印 HEX 数据 " 代码片段. 在调试的时候经常要打印内存里的数据,来看看数据及格式是否在预期范围内:以及在调试二进制协议的时候,经常需要将协议包里的数据打印出来,这个时候就会涉及 ...

  9. Android.mk、Makefile、Cmake打印log

    1.Android.mk$(info "--------------before------------------") TEST_MODULE_SUPPORT := yes // ...

最新文章

  1. 程序员学霸!top2大学毕业!不到30岁第一次升P9失败!挫折感极强,怀疑人生?网友:没升P7的我,不要面子的吗??...
  2. sys.argv[n] (终端运行python文件第n个参数) 在 pycharm 中的应用
  3. 万物新生(爱回收)递交赴美上市招股书,平台服务收入年复合增长达627.7%
  4. 《JavaScript语言精髓与编程实践》读书笔记二
  5. noip2017d2t2
  6. Java命令学习系列(零)——常见命令及Java Dump介绍
  7. 排序与查找 详细分析
  8. Spring AOP AspectJ 代码实例
  9. 关于Error.captureStackTrace
  10. HTTP所承载的货物(图像、文本、软件等)要满足的条件
  11. FFmpeg编解码常用函数ffmpeg av_parser_parse2()函数
  12. Cocos Creator | 碰撞检测优化-四叉树
  13. 2014年服装设计短训班(周末班)招生简章-北京服装学院培训中心
  14. opencv给图片加中文水印
  15. 少儿学python真的有用吗_如何看待海淀妈妈们认为Python是儿童才学的低端编程?...
  16. 《详细》使用ventoy制作linux to go和win to go放在u盘中《即走即用的便携式系统》,自带系统引导
  17. 【**背包dp**】
  18. 海飞丝头发的研究和实现
  19. 期货开户每日无负债结算制度
  20. 百度阿拉丁计划 - 看上去很美

热门文章

  1. 【转】 IIS_WPG 用户组权限问题
  2. 转贴:电子商务如何提升网站转化率之:谷歌9条
  3. Windows系统上3种连接Docker虚拟机的方法
  4. 在mysql怎样查询地址和电话_Mysql数据查询
  5. pandas object转float_Pandas中文官档~基础用法6
  6. pcm 降采样_Android_android downsample降低音频采样频率代码,使用Android AudioRecord 录制PCM文 - phpStudy...
  7. rust腐竹是什么意思_学习Rust 集合与字符串
  8. python图像处理模糊_Python+OpenCV图像处理之模糊操作
  9. mysql 子查询模糊匹配_sql中的查询(模糊查询,子查询,联表查询)
  10. oracle中over()分析函数的用法