獲取打印所在文件
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)")
}
- Xcode 中我們修改運行的是 debug 包還是 release 包可以按照下圖修改
0.png
1.png
-
由于 swift 中沒有宏,不能根據宏來判斷是 DEBug 還是 release 模式
所以,如果要判斷是 DEBug 還是 Release 模式可以根據下圖
2.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 跟一串字符串