美文网首页
Swift 自定义Log

Swift 自定义Log

作者: HeartPower | 来源:发表于2016-12-18 20:42 被阅读15次

    在项目开发中调试程序或者确定一些数据时要经常用到打印,那我们如何使打印用起来更方便,这需要自定义打印。下面我们开始进行自定义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,然后如下图去做:

    Debug.png

    在代码中需要这样修改:

    <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模式下不打印。

    相关文章

      网友评论

          本文标题:Swift 自定义Log

          本文链接:https://www.haomeiwen.com/subject/kcdzmttx.html