Swift中如何实现自定义Debug模式下打印Log

原创 2016年08月31日 13:53:11

       打印log是开发调试过程中是必不可少的一步,但是上线之后这中log就没有什么意义,而且很消耗性能,如何在调试时候打印不调试就不打印呢?objective-c时代我们可以使用宏定义来设置工程debug模式下打印log,release模式下不打印log,但是过度到swift之后,我们发现swift的版本特性,不具有宏这种东西,所以也就不那么容易实现类似OC中的debug模式才能打印log的功能,但是还是可以操作的,方法如下:

       首先我们知道,swift语言的特性并没有宏这种概念,所以我们可以通过定义全局函数的形式来让所有的类都能调用,下边是我写好的一个函数用来描述打印log的信息:

        func PrintLog<N>(message:N,fileName:String = #file,methodName:String = #function,lineNumber:Int = #line){
                 #if DebugType
              print("\(fileName as NSString)\n方法:\(methodName)\n行号:\(lineNumber)\n打印信息\(message)");
                #endif
       }

        大家会发现,   #if DebugType以及#endif还是宏,确实,但是这个宏和oc中的宏是两回事了,因为这个是自定义的宏,好了,重点来了,怎么去定义这个自定义的宏呢?

 方法是:点击工程,然后target 然后 build setting 然后搜索custom 这个时候会有个custom flag选项,下边就有个选项,如下图:

然后在Debug选项中输入-加大写的D 后边跟你自己定义的宏的名字,这样,就完成了自己定义的宏,通过更改release模式我们发现,已经完成了这个功能,只在debuge模式下调用这个打印函数,release下不会调用,希望能对你有所帮助


Swift中Debug和Release两种状态下print()函数调试切换

Swift中Debug和Release两种状态下print()函数调试切换 在编写项目的过程中,我们常常会打印信息到控制台,通过打印的信息来判断代码的流程或者正确性。但是这些信息仅仅在Debug的状态...
  • wj610671226
  • wj610671226
  • 2016年04月22日 15:03
  • 3764

swift debug 输出

编译设置 点击项目导航图标;选择你的项目名称;选择编译设置;搜索 Compiler Flag;展开 Other C Flags;点击 +;输入 -D DEBUG。 最后,我们将把我们实际的...
  • yaojinhai06
  • yaojinhai06
  • 2016年10月20日 11:23
  • 329

Swift调试输出

NSLog输出是程序开发中很重要的组成部分,在Swift中,最简单的输出方法就是使用println。 我们当然可以在println的时候将当前的文件名字和那些必要的信息作为参数同我们的消息一...
  • liangliang2727
  • liangliang2727
  • 2016年04月20日 10:17
  • 1072

Swift print 小技巧

Log 输出是程序开发中很重要的组成部分,虽然它并不是直接的业务代码,但是却可以忠实地反映我们的程序是如何工作的,以及记录程序运行的过程中发生了什么。 在 Swift 中,最简单的输出方法就是使...
  • magic_castle
  • magic_castle
  • 2015年12月30日 23:08
  • 3640

Swift的Debug和Release宏

step a: 在Swift Compiler - Custom Flags的Other Swift Flags的Debug里添加-DDEBUG 在Release里添加-DRELEASE ste...
  • cracj
  • cracj
  • 2016年02月15日 17:20
  • 1278

swift 自定义Log

swift和OC的自定义Log有一些不同,具体代码如下 // // AppDelegate.swift // Test // // Created by fe on 2017/03/03. ...
  • ZhengYanFeng1989
  • ZhengYanFeng1989
  • 2017年03月03日 10:15
  • 498

Swift3.1-实现自定义Log

系统函数打印log的弊端 1:非常消耗性能 2:如果app部署到AppStore之后用户是看不到log内容的,所以我们只需要在debug开发调试阶段显示log,部署阶段隐藏log 在oc开...
  • longshihua
  • longshihua
  • 2017年03月07日 22:31
  • 611

Swift学习,NSLog的使用(一)

我的开发环境 操作系统:OS X EI Capitan 10.11.1 (15B42) 电脑型号:MacBook Pro(Retina 显示屏,15 英寸,2013 年末) 处理器:2.3 GHz I...
  • huanghyw
  • huanghyw
  • 2015年11月07日 17:09
  • 2249

Swift 自定义打印信息

Swift版本//自定义打印日志 func PrintLog(_ message: T, fileName: String = #file, methodName: String = #functio...
  • C_calary
  • C_calary
  • 2017年04月25日 10:55
  • 823

Swift中Debug和Release两种状态下print()函数调试切换

Swift中Debug和Release两种状态下print()函数调试切换 在编写项目的过程中,我们常常会打印信息到控制台,通过打印的信息来判断代码的流程或者正确性。但是这些信息仅仅在Debug的状态...
  • wj610671226
  • wj610671226
  • 2016年04月22日 15:03
  • 3764
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift中如何实现自定义Debug模式下打印Log
举报原因:
原因补充:

(最多只允许输入30个字)