Difference between NSLog and DLog

后端 未结 5 1414
栀梦
栀梦 2020-12-08 07:25

Can anyone tell me what the difference is between NSLog and DLog?

I found about this DLog when I was looking over this project code: http:/

相关标签:
5条回答
  • 2020-12-08 08:06

    I think an important difference between NSLog and DLog is that NSLog lags the execution of the program (imagine forgetting to remove all NSLog calls in production/publishing), so for debug purposes DLog should be used.

    0 讨论(0)
  • 2020-12-08 08:10

    Hi, Below the macro cmd for NSLOG replacement file format and also below i mentioned undef Macro as well as

    Definition:

    #define _LOG_TO_CONSOLE_ //#undef _LOG_TO_CONSOLE_
    #ifdef _LOG_TO_CONSOLE_
    #define DLog(format, ...) NSLog(format, ##__VA_ARGS__)
    #else
    #define DLog(format, ...)
    #endif
    
    0 讨论(0)
  • 2020-12-08 08:13

    DLog is a commonly used "Debug NSLog" alternative (just Google for it)

    Here is a complete set of Log #define directives (including ULog, a UIAlertView based Logging feature)

    // DLog will output like NSLog only when the DEBUG variable is set
    
    #ifdef DEBUG
    #   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
    #else
    #   define DLog(...)
    #endif
    
    // ALog will always output like NSLog
    
    #define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
    
    // ULog will show the UIAlertView only when the DEBUG variable is set 
    
    #ifdef DEBUG
    #   define ULog(fmt, ...)  { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s\n [Line %d] ", __PRETTY_FUNCTION__, __LINE__] message:[NSString stringWithFormat:fmt, ##__VA_ARGS__]  delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; }
    #else
    #   define ULog(...)
    #endif
    

    Just put them in your precompile header (.pch) file.

    (source: http://overbythere.co.uk/blog/2012/01/alternatives-nslog)

    0 讨论(0)
  • 2020-12-08 08:14

    DLog is a macro meant to conditionalize the behavior of NSLog() in debug and release builds. For release builds it will print nothing. NSLog() is meant to print format strings to the console.

    Here is its definition for reference:

    #ifdef DEBUG
    #    define DLog(...) NSLog(__VA_ARGS__)
    #else
    #    define DLog(...) /* */
    #endif
    #define ALog(...) NSLog(__VA_ARGS__)
    
    0 讨论(0)
  • 2020-12-08 08:31

    NSLog is a function that's built into the Foundation framework that Apple provides. I've never heard of DLog, so I assume that it's a non-standard function that's implemented by the code you're looking at.

    0 讨论(0)
提交回复
热议问题