Swift 自定义 log

2018-08-26  本文已影响0人  张_何

获取打印所在文件

let file = (__FILE__ as NSString).lastPathComponent

获取打印所在的方法

let funcName = #function

获取打印所在行数

let lingNumber = #line

print("\(file):[\(funcName)](\(#line))") 

定义一个全局函数打印

//这里<T> 表示动态类型,传过来的是什么类型就是什么类型,<T>中的 T 只是一种写法 T 也可以被替换成任意字母或字符串
func Log<T>(message: T, file: String = #file, funcName: String = #function, lineNumber: Int = #line) {
        let fileName = (file as NSString).lastPathComponent
    print("\(fileName):(\(lineNumber))-\(message)")
}

0.png
1.png

这样之后就可以根据给 log 方法加一个条件编译,让它在 debug 模式下输出 log 信息

func Log<T>(message: T, file: String = #file, funcName: String = #function, lineNumber: Int = #line) {
    #if ABCD
        let fileName = (file as NSString).lastPathComponent
    print("\(fileName):(\(lineNumber))-\(message)")
    #endif
}

给 release 模式添加标识符也是一样 -D 跟一串字符串

上一篇 下一篇

猜你喜欢

热点阅读