Logging.h
changeset 8 5588347dfcbd
parent 1 e55a17cdabd2
child 11 e5976864dfe9
     1.1 --- a/Logging.h	Thu Mar 20 09:05:58 2008 -0700
     1.2 +++ b/Logging.h	Wed May 07 16:47:44 2008 -0700
     1.3 @@ -12,13 +12,23 @@
     1.4  NSString* LOC( NSString *key );     // Localized string lookup
     1.5  
     1.6  
     1.7 -#define Log(FMT,ARGS...) do{if(__builtin_expect(_gShouldLog,0)) _Log(FMT,##ARGS);}while(0)
     1.8 +#ifdef __cplusplus
     1.9 +    #define IN_SEGMENT(SEG)
    1.10 +#else
    1.11 +    #define IN_SEGMENT(SEG) auto __attribute__ ((section ("__TEXT, "#SEG))) __attribute__ ((noinline)) void _outofband_(void);\
    1.12 +                            _outofband_();\
    1.13 +                            void _outofband_(void)
    1.14 +#endif
    1.15 +
    1.16 +#define Log(FMT,ARGS...) do{if(__builtin_expect(_gShouldLog,0)) {\
    1.17 +                            IN_SEGMENT(Logging){_Log(FMT,##ARGS);}\
    1.18 +                         } }while(0)
    1.19 +#define LogTo(DOMAIN,FMT,ARGS...) do{if(__builtin_expect(_gShouldLog,0)) {\
    1.20 +                                    IN_SEGMENT(Logging) {_LogTo(@""#DOMAIN,FMT,##ARGS);}\
    1.21 +                                  } }while(0)
    1.22  #define Warn Warn
    1.23  
    1.24  void AlwaysLog( NSString *msg, ... ) __attribute__((format(__NSString__, 1, 2)));
    1.25 -
    1.26 -#define LogTo(DOMAIN,FMT,ARGS...) do{if(__builtin_expect(_gShouldLog,0)) _LogTo(@""#DOMAIN,FMT,##ARGS);}while(0)
    1.27 -
    1.28  BOOL _WillLogTo( NSString *domain );
    1.29  BOOL EnableLog( BOOL enable );
    1.30  #define EnableLogTo( DOMAIN, VALUE )  _EnableLogTo(@""#DOMAIN, VALUE)