Swift 优雅的打印Log
生活随笔
收集整理的這篇文章主要介紹了
Swift 优雅的打印Log
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
iOS開(kāi)發(fā)中Log打印是最為常見(jiàn)的調(diào)試方式,沒(méi)有之一. Swift提供了兩種打印方式
public func print(_ items: Any..., separator: String = default, terminator: String = default)public func debugPrint(_ items: Any..., separator: String = default, terminator: String = default) 復(fù)制代碼debugPrint可以自己識(shí)別是否是release環(huán)境,如果是release環(huán)境就不會(huì)打印 雖然Swift貼心的提供了debugPrint這個(gè)方法,但是對(duì)于Log太多的項(xiàng)目來(lái)說(shuō),找到自己的打印信息還是費(fèi)點(diǎn)眼睛的. 如果打印出時(shí)間,文件,方法那么就更好了 廢話不多說(shuō),直接上代碼 首先需要在Build Setting -> Other Swift Flags設(shè)置一下
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 } 復(fù)制代碼轉(zhuǎn)載于:https://juejin.im/post/5aa53fb36fb9a028bf04f260
總結(jié)
以上是生活随笔為你收集整理的Swift 优雅的打印Log的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: arcgis api for js入门开
- 下一篇: DevOps 国际峰会,为你讲解腾讯的