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之打印输出

所有编程语言都有的函数打印输出: print()         // 不换行输出 println()      // 换行输出       print 和 printl...

Swift 2.0中打印函数的用法

在今年的苹果全球开发者大会上(Worldwide Developers Conference, WWDC 2015),苹果发布了Swift 2.0版本,对1.x版本,2.0版本做了许多细节上的改动,这...
  • zzzhyl
  • zzzhyl
  • 2015年10月06日 18:13
  • 1057

Swift 自定义打印信息

Swift版本//自定义打印日志 func PrintLog(_ message: T, fileName: String = #file, methodName: String = #functio...

Log 输出-Swift

转载地址:http://swifter.tips/log/

Swift调试输出

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

swift 自定义Log

swift和OC的自定义Log有一些不同,具体代码如下 // // AppDelegate.swift // Test // // Created by fe on 2017/03/03. ...

swift学习日志—— Log日志

Log 输出是程序开发中很重要的组成部分,虽然它并不是直接的业务代码,但是却可以忠实地反映我们的程序是如何工作的,以及记录程序运行的过程中发生了什么。在OC中的Log日志设置请看我的另一篇博客:设置L...
  • jaccty
  • jaccty
  • 2015年12月31日 11:55
  • 1238

Swift日志打印

public func BMLog(message: T, file: String = FILE, method: String = FUNCTION,line: Int = LINE) { ...
  • pjk1129
  • pjk1129
  • 2016年01月05日 13:45
  • 1682

XCGLogger Swift日志打印

Swift没有C预编译功能,所以我们不能使用调试log #define 宏定义了。 XCGLogger提供给开发者打印详细的内容到控制台。简单举个例子吧,下面就是使用XCGLogger打印出来的结果...

Swift - 实现日志输出的封装1(显示出调用的文件名、方法、行号)

在开发调试程序时,我们少不了使用 print 方法进行日志打印。当然简单地调试使用 print 方法就够了,但如果日志输出的地方很多,就不好区分出每条日志具体是在哪里打印的。 本文对日志打印功能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift中如何实现自定义Debug模式下打印Log
举报原因:
原因补充:

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