Files
MapLibreParticleLab/platform/darwin/src/MLNLoggingConfiguration_Private.h
2024-06-11 19:01:50 +02:00

77 lines
3.1 KiB
Objective-C

#import "MLNLoggingConfiguration.h"
NS_INLINE NSString *MLNStringFromBOOL(BOOL value) { return value ? @"YES" : @"NO"; }
#if TARGET_OS_OSX
NS_INLINE NSString *MLNStringFromNSEdgeInsets(NSEdgeInsets insets) {
return [NSString stringWithFormat:@"{ top: %f, left: %f, bottom: %f, right: %f", insets.top,
insets.left, insets.bottom, insets.right];
}
#endif
#ifdef MLN_LOGGING_DISABLED
#define MLNLogInfo(...)
#define MLNLogDebug(...)
#define MLNLogWarning(...)
#define MLNLogError(...)
#define MLNLogFault(...)
#else
#if MLN_LOGGING_ENABLE_DEBUG
#define MLNLogDebug(message, ...) \
MLNLogWithType(MLNLoggingLevelDebug, __PRETTY_FUNCTION__, __LINE__, message, ##__VA_ARGS__)
#else
#define MLNLogDebug(...)
#endif
#define MLNLogInfo(message, ...) \
MLNLogWithType(MLNLoggingLevelInfo, __PRETTY_FUNCTION__, __LINE__, message, ##__VA_ARGS__)
#define MLNLogWarning(message, ...) \
MLNLogWithType(MLNLoggingLevelWarning, __PRETTY_FUNCTION__, __LINE__, message, ##__VA_ARGS__)
#define MLNLogError(message, ...) \
MLNLogWithType(MLNLoggingLevelError, __PRETTY_FUNCTION__, __LINE__, message, ##__VA_ARGS__)
#define MLNLogFault(message, ...) \
MLNLogWithType(MLNLoggingLevelFault, __PRETTY_FUNCTION__, __LINE__, message, ##__VA_ARGS__)
#endif
#define MLNAssert(expression, message, ...) \
__extension__({ \
if (__builtin_expect(!(expression), 0)) { \
MLNLogFault(message, ##__VA_ARGS__); \
} \
NSAssert(expression, message, ##__VA_ARGS__); \
})
#define MLNCAssert(expression, message, ...) \
__extension__({ \
if (__builtin_expect(!(expression), 0)) { \
MLNLogFault(message, ##__VA_ARGS__); \
} \
NSCAssert(expression, message, ##__VA_ARGS__); \
})
#ifndef MLN_LOGGING_DISABLED
#define MLNLogWithType(type, function, line, message, ...) \
{ \
if ([MLNLoggingConfiguration sharedConfiguration].loggingLevel != MLNLoggingLevelNone && \
type <= [MLNLoggingConfiguration sharedConfiguration].loggingLevel) { \
[[MLNLoggingConfiguration sharedConfiguration] logCallingFunction:function \
functionLine:line \
messageType:type \
format:(message), ##__VA_ARGS__]; \
} \
}
@interface MLNLoggingConfiguration (Private)
- (void)logCallingFunction:(const char *)callingFunction
functionLine:(NSUInteger)functionLine
messageType:(MLNLoggingLevel)type
format:(id)messageFormat, ...;
@end
#endif