Swift 自定义Log
在项目开发中调试程序或者确定一些数据时要经常用到打印,那我们如何使打印用起来更方便,这需要自定义打印。下面我们开始进行自定义Log。
如果当我们看到打印时就知道这个打印是在哪个文件中,哪个方法,哪一行,这样是不是更方便我们查看呢,那么首先我们要获取该打印所在文件,所在方法,所在行。
获取打印所在文件
<pre>let file = #file</pre>
获取打印所在的方法
<pre>let funcName = #function</pre>
获得打印所在行数
<pre>llet lineNum = #line</pre>
对于获取打印所在文件,我们肯定不希望在打印的时候看到所有文件路径信息,而只要知道文件类名就可以了,那么获取打印所在文件的代码需要做个处理,这样就获取那个文件类名。
<pre>let file = (#file as NSString).lastPathComponent</pre>
我们知道了这些,下面就可以封装一个打印的方法
<pre>func WXLog<T>(Msg: T, file: String = #file, funcName: String = #function, lineNum: Int = #line) {
let fileName = (file as NSString).lastPathComponent
print("(fileName):((lineNum))-(Msg)")
}</pre>
我们都知道开发项目时一般在调试的时候用的都是Debug模式,上传到AppStore时一般都是Release模式,那么怎么样让打印在Debug模式下打印,在Release模式下不打印呢?需要这样做:
1.设置Debug标识,选择项目TARGETS->Build Settings->搜索swift flag,然后如下图去做:
在代码中需要这样修改:
<pre> func WXLog<T>(Msg: T, file: String = #file, funcName: String = #function, lineNum: Int = #line) {
#if DEBUG
let fileName = (file as NSString).lastPathComponent
print("(fileName):((lineNum))-(Msg)")
#endif
}
</pre>
这样就实现了打印在Debug模式下打印,在Release模式下不打印。