自定义的打印语句NSLog在控制台输出不完整的完美解决
之前定义日志输出时用的下面的方法
1 2 3 4 5 | 1 #ifdef DEBUG // 调试状态, 打开LOG功能 2 #define CXTLog(...) NSLog (__VA_ARGS__) 3 # else // 发布状态, 关闭LOG功能 4 #define CXTLog(...) 5 #endif |
感觉很完美,但是最近升级xcode 9以后发现控制台总是输出不完整,打印接口数据总是打印出一部分,很是郁闷,
直到发现了下面的方法:
1 2 3 4 5 6 7 | 1 #ifdef DEBUG // 调试状态, 打开LOG功能 2 3 #define CXTLog( s, ... ) printf( "class: <%p %s:(%d) > method: %s \n%s\n" , self , [[[ NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, __PRETTY_FUNCTION__, [[ NSString stringWithFormat:(s), ##__VA_ARGS__] UTF8String] ) 4 5 # else // 发布状态, 关闭LOG功能 6 #define CXTLog( s, ... ) 7 #endif |
用这个方法解决了控制台输出不完整的问题,整个人就好了!
升级版:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #ifdef DEBUG #define LYLog(FORMAT, ...) {\ NSDateFormatter *dateFormatter = [[ NSDateFormatter alloc] init];\ [dateFormatter setDateStyle: NSDateFormatterMediumStyle ];\ [dateFormatter setTimeStyle: NSDateFormatterShortStyle ];\ NSTimeZone * timeZone = [ NSTimeZone timeZoneWithName:@ "Asia/Beijing" ];\ [dateFormatter setTimeZone:timeZone];\ [dateFormatter setDateFormat:@ "yyyy-MM-dd HH:mm:ss.SSSSSSZ" ];\ NSString *str = [dateFormatter stringFromDate:[ NSDate date]];\ fprintf(stderr, "TIME:%s【FILE:%s--LINE:%d】FUNCTION:%s\n%s\n" ,[str UTF8String],[[[ NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__,__PRETTY_FUNCTION__,[[ NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);\ } #else # define LYLog(...); #endif |
感谢您的访问!
若对您有帮助或有兴趣请关注博客:http://www.cnblogs.com/Rong-Shengcom/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?