Swift 优雅的打印Log
生活随笔
收集整理的這篇文章主要介紹了
Swift 优雅的打印Log
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
iOS開發中Log打印是最為常見的調試方式,沒有之一. Swift提供了兩種打印方式
public func print(_ items: Any..., separator: String = default, terminator: String = default)public func debugPrint(_ items: Any..., separator: String = default, terminator: String = default) 復制代碼debugPrint可以自己識別是否是release環境,如果是release環境就不會打印 雖然Swift貼心的提供了debugPrint這個方法,但是對于Log太多的項目來說,找到自己的打印信息還是費點眼睛的. 如果打印出時間,文件,方法那么就更好了 廢話不多說,直接上代碼 首先需要在Build Setting -> Other Swift Flags設置一下
public func OKPrint( _ object: @autoclosure() -> Any?,_ file: String = #file,_ function: String = #function,_ line: Int = #line) {#if DEBUGguard let value = object() else {return}var stringRepresentation: String?if let value = value as? CustomDebugStringConvertible {stringRepresentation = value.debugDescription}else if let value = value as? CustomStringConvertible {stringRepresentation = value.description}else {fatalError("gLog only works for values that conform to CustomDebugStringConvertible or CustomStringConvertible")}let gFormatter = DateFormatter()gFormatter.dateFormat = "HH:mm:ss:SSS"let timestamp = gFormatter.string(from: Date())let queue = Thread.isMainThread ? "UI" : "BG"let fileURL = NSURL(string: file)?.lastPathComponent ?? "Unknown file"if let string = stringRepresentation {print("? \(timestamp) {\(queue)} \(fileURL) > \(function)[\(line)]: \(string)")} else {print("? \(timestamp) {\(queue)} \(fileURL) > \(function)[\(line)]: \(value)")}#endif } 復制代碼轉載于:https://juejin.im/post/5aa53fb36fb9a028bf04f260
總結
以上是生活随笔為你收集整理的Swift 优雅的打印Log的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arcgis api for js入门开
- 下一篇: DevOps 国际峰会,为你讲解腾讯的