Objective-C 日志处理

  • 日志处理

    日志处理为了打印日志,我们在Hello World示例中使用了Objective-C编程语言中的NSLog方法。让我们看一个简单的代码,该代码将显示“Hello World”字样-
    
    #import <Foundation/Foundation.h>
    
    int main() {
       NSLog(@"Hello, World! \n");
       return 0;
    }
    
    现在,当我们编译并运行程序时,我们将得到以下结果。
    
    2020-08-08 00:32:50.888 test[16669] Hello, World! 
    
  • 在实时应用中禁用日志

    由于我们在应用程序中使用了NSLogs,因此它将被打印在设备日志中,并且在实时构建中打印日志不是很好。因此,我们使用类型定义来打印日志,并且可以如下所示使用它们。
    
    #import <Foundation/Foundation.h>
    
    #if DEBUG == 0
    #define DebugLog(...)
    #elif DEBUG == 1
    #define DebugLog(...) NSLog(__VA_ARGS__)
    #endif
    
    int main() {
       DebugLog(@"Debug log, our custom addition gets \
       printed during debug only" );
       NSLog(@"NSLog gets printed always" );     
       return 0;
    }
    
    现在,当我们在调试模式下编译并运行程序时,我们将得到以下结果。
    
    2020-08-08 16:37:48.443 test[6256:7784] Debug log, our custom addition gets    printed during debug only
    2020-08-08 16:37:48.448 test[6256:7784] NSLog gets printed always
    
    调试模式编译,gcc 加参数-D DEBUG
    现在,当我们在发布模式下编译并运行程序时,将得到以下结果。
    
    2020-08-08 16:34:55.537 test[6168:3768] NSLog gets printed always