| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #import "BTLogger_Internal.h"
- #define variadicLogLevel(level, format) \
- va_list args; \
- va_start(args, format); \
- [self logLevel:level format:format arguments:args]; \
- va_end(args);
- @implementation BTLogger
- + (instancetype)sharedLogger {
- static BTLogger *instance;
- static dispatch_once_t onceToken;
- dispatch_once(&onceToken, ^{
- instance = [self new];
- });
- return instance;
- }
- - (instancetype)init {
- self = [super init];
- if (self) {
- _level = BTLogLevelInfo;
- }
- return self;
- }
- - (void)log:(NSString *)format, ... {
- variadicLogLevel(BTLogLevelInfo, format)
- }
- - (void)critical:(NSString *)format, ... {
- variadicLogLevel(BTLogLevelCritical, format)
- }
- - (void)error:(NSString *)format, ... {
- variadicLogLevel(BTLogLevelError, format)
- }
- - (void)warning:(NSString *)format, ... {
- variadicLogLevel(BTLogLevelWarning, format)
- }
- - (void)info:(NSString *)format, ... {
- variadicLogLevel(BTLogLevelInfo, format)
- }
- - (void)debug:(NSString *)format, ... {
- variadicLogLevel(BTLogLevelDebug, format)
- }
- - (void)logLevel:(BTLogLevel)level format:(NSString *)format arguments:(va_list)arguments {
- if (level <= self.level) {
- NSString *message = [[NSString alloc] initWithFormat:format arguments:arguments];
- if (self.logBlock) {
- self.logBlock(level, message);
- } else {
- NSString *levelString = [[self class] levelString:level];
- NSLog(@"[BraintreeSDK] %@ %@", [levelString uppercaseString], message);
- }
- }
- }
- + (NSString *)levelString:(BTLogLevel)level {
- switch (level) {
- case BTLogLevelCritical:
- return @"Critical";
- case BTLogLevelError:
- return @"Error";
- case BTLogLevelWarning:
- return @"Warning";
- case BTLogLevelInfo:
- return @"Info";
- case BTLogLevelDebug:
- return @"Debug";
- default:
- return nil;
- }
- }
- @end
|