CocoaHTTPServer2.3: Implicit declaration of function 'LOG_OBJC_MAYBE' is invalid in C99
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(minddraft)
➤博主域名:https://www.zengqiang.org
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/16205867.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
在HTTPLogging.h文件中:
// 1、将 #import "DDLog.h" // 替换为 #import <CocoaLumberjack/CocoaLumberjack.h>in // 1、将 LOG_OBJC_MAYBE // 替换为 HTTP_LOG_OBJC_MAYBELOG_C_MAYBEHTTP_LOG_C_MAYBEHTTPLogging.h // 3、添加 #define HTTP_LOG_OBJC_MAYBE(async, lvl, flg, ctx, frmt, ...) \ do{ if(HTTP_LOG_ASYNC_ENABLED) LOG_MAYBE(async, lvl, flg, ctx, nil, sel_getName(_cmd), frmt, ##__VA_ARGS__); } while(0) #define HTTP_LOG_C_MAYBE(async, lvl, flg, ctx, frmt, ...) \ do{ if(HTTP_LOG_ASYNC_ENABLED) LOG_MAYBE(async, lvl, flg, ctx, nil, __FUNCTION__, frmt, ##__VA_ARGS__); } while(0)
最终的HTTPLogging.h文件为:
#import <CocoaLumberjack/CocoaLumberjack.h> #define HTTP_LOG_OBJC_MAYBE(async, lvl, flg, ctx, frmt, ...) do{ if(HTTP_LOG_ASYNC_ENABLED) LOG_MAYBE(async, lvl, flg, ctx, nil, sel_getName(_cmd), frmt, ##__VA_ARGS__); } while(0) #define HTTP_LOG_C_MAYBE(async, lvl, flg, ctx, frmt, ...) do{ if(HTTP_LOG_ASYNC_ENABLED) LOG_MAYBE(async, lvl, flg, ctx, nil, __FUNCTION__, frmt, ##__VA_ARGS__); } while(0) #define HTTP_LOG_CONTEXT 80 #define HTTP_LOG_FLAG_ERROR (1 << 0) // 0...00001 #define HTTP_LOG_FLAG_WARN (1 << 1) // 0...00010 #define HTTP_LOG_FLAG_INFO (1 << 2) // 0...00100 #define HTTP_LOG_FLAG_VERBOSE (1 << 3) // 0...01000 #define HTTP_LOG_LEVEL_OFF 0 // 0...00000 #define HTTP_LOG_LEVEL_ERROR (HTTP_LOG_LEVEL_OFF | HTTP_LOG_FLAG_ERROR) // 0...00001 #define HTTP_LOG_LEVEL_WARN (HTTP_LOG_LEVEL_ERROR | HTTP_LOG_FLAG_WARN) // 0...00011 #define HTTP_LOG_LEVEL_INFO (HTTP_LOG_LEVEL_WARN | HTTP_LOG_FLAG_INFO) // 0...00111 #define HTTP_LOG_LEVEL_VERBOSE (HTTP_LOG_LEVEL_INFO | HTTP_LOG_FLAG_VERBOSE) // 0...01111 #define HTTP_LOG_FLAG_TRACE (1 << 4) // 0...10000 #define HTTP_LOG_ERROR (httpLogLevel & HTTP_LOG_FLAG_ERROR) #define HTTP_LOG_WARN (httpLogLevel & HTTP_LOG_FLAG_WARN) #define HTTP_LOG_INFO (httpLogLevel & HTTP_LOG_FLAG_INFO) #define HTTP_LOG_VERBOSE (httpLogLevel & HTTP_LOG_FLAG_VERBOSE) #define HTTP_LOG_TRACE (httpLogLevel & HTTP_LOG_FLAG_TRACE) #define HTTP_LOG_ASYNC_ENABLED YES #define HTTP_LOG_ASYNC_ERROR ( NO && HTTP_LOG_ASYNC_ENABLED) #define HTTP_LOG_ASYNC_WARN (YES && HTTP_LOG_ASYNC_ENABLED) #define HTTP_LOG_ASYNC_INFO (YES && HTTP_LOG_ASYNC_ENABLED) #define HTTP_LOG_ASYNC_VERBOSE (YES && HTTP_LOG_ASYNC_ENABLED) #define HTTP_LOG_ASYNC_TRACE (YES && HTTP_LOG_ASYNC_ENABLED) #define HTTPLogError(frmt, ...) HTTP_LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_ERROR, httpLogLevel, HTTP_LOG_FLAG_ERROR, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogWarn(frmt, ...) HTTP_LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_WARN, httpLogLevel, HTTP_LOG_FLAG_WARN, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogInfo(frmt, ...) HTTP_LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_INFO, httpLogLevel, HTTP_LOG_FLAG_INFO, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogVerbose(frmt, ...) HTTP_LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_VERBOSE, httpLogLevel, HTTP_LOG_FLAG_VERBOSE, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogTrace() HTTP_LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_TRACE, httpLogLevel, HTTP_LOG_FLAG_TRACE, HTTP_LOG_CONTEXT, @"%@[%p]: %@", THIS_FILE, self, THIS_METHOD) #define HTTPLogTrace2(frmt, ...) HTTP_LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_TRACE, httpLogLevel, HTTP_LOG_FLAG_TRACE, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogCError(frmt, ...) HTTP_LOG_C_MAYBE(HTTP_LOG_ASYNC_ERROR, httpLogLevel, HTTP_LOG_FLAG_ERROR, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogCWarn(frmt, ...) HTTP_LOG_C_MAYBE(HTTP_LOG_ASYNC_WARN, httpLogLevel, HTTP_LOG_FLAG_WARN, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogCInfo(frmt, ...) HTTP_LOG_C_MAYBE(HTTP_LOG_ASYNC_INFO, httpLogLevel, HTTP_LOG_FLAG_INFO, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogCVerbose(frmt, ...) HTTP_LOG_C_MAYBE(HTTP_LOG_ASYNC_VERBOSE, httpLogLevel, HTTP_LOG_FLAG_VERBOSE, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) #define HTTPLogCTrace() HTTP_LOG_C_MAYBE(HTTP_LOG_ASYNC_TRACE, httpLogLevel, HTTP_LOG_FLAG_TRACE, HTTP_LOG_CONTEXT, @"%@[%p]: %@", THIS_FILE, self, __FUNCTION__) #define HTTPLogCTrace2(frmt, ...) HTTP_LOG_C_MAYBE(HTTP_LOG_ASYNC_TRACE, httpLogLevel, HTTP_LOG_FLAG_TRACE, HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)