34 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
#import "SentryDefines.h"
 | 
						|
#import "SentrySwift.h"
 | 
						|
 | 
						|
#define SENTRY_LOG(_SENTRY_LOG_LEVEL, ...)                                                         \
 | 
						|
    if ([SentryLog willLogAtLevel:_SENTRY_LOG_LEVEL]) {                                            \
 | 
						|
        [SentryLog logWithMessage:[NSString stringWithFormat:@"[%@:%d] %@",                        \
 | 
						|
                                      [[[NSString stringWithUTF8String:__FILE__]                   \
 | 
						|
                                          lastPathComponent] stringByDeletingPathExtension],       \
 | 
						|
                                      __LINE__, [NSString stringWithFormat:__VA_ARGS__]]           \
 | 
						|
                         andLevel:_SENTRY_LOG_LEVEL];                                              \
 | 
						|
    }
 | 
						|
#define SENTRY_LOG_DEBUG(...) SENTRY_LOG(kSentryLevelDebug, __VA_ARGS__)
 | 
						|
#define SENTRY_LOG_INFO(...) SENTRY_LOG(kSentryLevelInfo, __VA_ARGS__)
 | 
						|
#define SENTRY_LOG_WARN(...) SENTRY_LOG(kSentryLevelWarning, __VA_ARGS__)
 | 
						|
#define SENTRY_LOG_ERROR(...) SENTRY_LOG(kSentryLevelError, __VA_ARGS__)
 | 
						|
#define SENTRY_LOG_FATAL(...) SENTRY_LOG(kSentryLevelFatal, __VA_ARGS__)
 | 
						|
 | 
						|
/**
 | 
						|
 * If @c errno is set to a non-zero value after @c statement finishes executing,
 | 
						|
 * the error value is logged, and the original return value of @c statement is
 | 
						|
 * returned.
 | 
						|
 */
 | 
						|
#define SENTRY_LOG_ERRNO(statement)                                                                \
 | 
						|
    ({                                                                                             \
 | 
						|
        errno = 0;                                                                                 \
 | 
						|
        const int __log_rv = (statement);                                                          \
 | 
						|
        const int __log_errnum = errno;                                                            \
 | 
						|
        if (__log_errnum != 0) {                                                                   \
 | 
						|
            SENTRY_LOG_ERROR(@"%s failed with code: %d, description: %s", #statement,              \
 | 
						|
                __log_errnum, strerror(__log_errnum));                                             \
 | 
						|
        }                                                                                          \
 | 
						|
        __log_rv;                                                                                  \
 | 
						|
    })
 |