dlog 控制台输出 - swift3.0

我们常常需要优化控制台的输出样式,比如方法名,方法行数等,这时候可以使用一些常用的dlog,在swift 3.0中,可以这样定义:

//MARK: Macros

/** 
dLog macros to abbreviate NSLog.
    
Use like this:

dLog("Log this!")
**/

#if DEBUG
    func dLog<T>(_ object: T, filename: String = #file, function: String = #function, line: Int = #line) {
        let fileString = filename as NSString
        let fileLastPathComponent = fileString.lastPathComponent as NSString
        let filename = fileLastPathComponent.deletingPathExtension
        
        print("[\(filename):\(line)] \(function) - \(object)")
    }
#else
    func dLog<T>(_ object: T, filename: String = #file, function: String = #function, line: Int = #line) {
        
    }
#endif

输出样式如下:

time xx[xx:xx] [filename: line] function() - a called
time xx[xx:xx] [filename: line] function() - b called

参考资料:[https://github.com/ArtSabintsev/Magic/blob/master/Magic.swift]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,113评论 8 183
  • 《饺子记》 今天,东至,晚上,同舍友会餐于食堂,吃饺子。热腾腾的饺子出锅,进碗,入口,水到渠成。饺子形态各异,...
    马二军阅读 242评论 0 0
  • 和朋友见面,时常会被问到两个问题。 第一个,送女朋友什么礼物好呢? 不知道,我真的不知道,因为我已经很多年没谈过女...
    张三耳阅读 7,157评论 48 124
  • 《21世纪的管理挑战》从假设开始讨论,第一章基本上是提出假设,然后进行分析讨论。从过去和当前形势出发,对未来一定时...
    猜不懂先生阅读 936评论 0 1
  • 总有这么一段时间 不早不晚 召唤着游子 回到故乡 故乡呵 你老了、颓坯了 长满了枯黄的胡须 看在游子的眼里 饱含着...
    流萤点灯阅读 520评论 7 4