调试 - DLog

iOS开发中,常常需要打印日志Debug程序,NSLog输出过于单一常常不能满足我们的需求,DLog 能输出行号、类名、方法命更便于调试。

  • OC中的DLog
DLog
#ifdef DEBUG
#define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define DLog(...)
#endif

ALog
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); 

在工程Bulid Settings的other C Flags的Debug中加入-DDEBUG,就能在工程Debug版本中调用DLog,在Release版本中不调用

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

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,845评论 0 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,707评论 25 709
  • 转载注明出处:http://www.jianshu.com/p/5255b100930e 0. 前言 完全由个人翻...
    王三的猫阿德阅读 7,419评论 0 4
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 10,057评论 0 12
  • 米酒喝完了,也不知喝了多久。醇香入口,回味清甜,没有比这更好喝的酒了,只是喝多了也会有醉意。 孩子玩累了,很早安睡...
    兰子说阅读 2,662评论 0 2