7 #import <Foundation/Foundation.h>
8 #import <CoreLocation/CoreLocation.h>
12 #import "MintUtilities.h"
25 #define MintLogException(exception, extradata) [[Mint sharedInstance] logException:exception extraData:extradata];
31 #define MINT_METHOD_TRACE_START \
32 NSMutableDictionary *mintTraceInfo = [[NSMutableDictionary alloc] init];\
33 [mintTraceInfo setObject:[NSString stringWithFormat:@"%s", __FUNCTION__] forKey:@"method"];\
34 [mintTraceInfo setObject:@(getCurrentTimeInNanos()) forKey:@"startTime"];\
35 [mintTraceInfo setObject:@(pthread_mach_thread_np(pthread_self())) forKey:@"threadID"];\
38 #define MINT_METHOD_TRACE_STOP \
39 [mintTraceInfo setObject:@(getCurrentTimeInNanos()) forKey:@"endTime"];\
40 [[Mint sharedInstance] logMethodTrace:mintTraceInfo];\
42 #define MINT_NONARC_METHOD_TRACE_STOP \
43 [mintTraceInfo setObject:@(getCurrentTimeInNanos()) forKey:@"endTime"];\
44 [[Mint sharedInstance] logMethodTrace:mintTraceInfo];\
45 [mintTraceInfo release];\
93 - (void)enableDebugLog:(BOOL) enable;
150 #pragma mark *** Initialize Mint SDK ***
160 - (void) initAndStartSessionWithAPIKey:(NSString*)apiKey;
172 - (void) initAndStartSessionWithHECUrl:(NSString*)url token:(NSString*)token;
179 - (void) leaveBreadcrumb: (NSString*)crumb;
205 - (void) logException: (NSException*)exception;
214 - (void) logException: (NSException*)exception extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
222 - (void) logException: (NSException*)exception extraData: (
MintLimitedExtraData*)extraDataDictionary;
238 - (void) enableMintLoggingCache:(BOOL)enable;
245 - (void) enableLogging:(BOOL)enable;
252 - (void) enableFlushOnlyOverWiFi:(BOOL)enable;
259 - (void) setLogging:(NSInteger)linesCount;
268 - (NSString*) transactionStart:(NSString*)transactionName;
278 - (NSString*) transactionStart:(NSString*)transactionName extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
287 - (NSString*) transactionStart:(NSString*)transactionName extraData: (
MintLimitedExtraData*)extraDataDictionary;
294 - (void) transactionStop:(NSString*)transactionID;
303 - (void) transactionStop:(NSString*)transactionID extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
311 - (void) transactionStop:(NSString*)transactionID extraData: (
MintLimitedExtraData*)extraDataDictionary;
319 - (void) transactionCancel:(NSString*)transactionID reason:(NSString*)aReason;
329 - (void) transactionCancel:(NSString*)transactionID reason:(NSString*)aReason extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
338 - (void) transactionCancel:(NSString*)transactionID reason:(NSString*)aReason extraData: (
MintLimitedExtraData*)extraDataDictionary;
345 - (void) addURLToBlackList:(NSString*)url;
360 - (void) logEventWithName: (NSString*)name;
368 - (void) logEventWithName:(NSString*)name logLevel:(MintLogLevel)logLevel;
378 - (void) logEventWithName:(NSString *)name logLevel:(MintLogLevel)logLevel extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
387 - (void) logEventWithName:(NSString*)name logLevel:(MintLogLevel)logLevel extraData: (
MintLimitedExtraData*)extraDataDictionary;
394 - (void)enableUserOptOut:(BOOL)userOptOut;
416 - (void)logViewWithCurrentViewName:(NSString*)currentViewName;
425 - (void)logViewWithCurrentViewName:(NSString*)currentViewName extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
433 - (void)logViewWithCurrentViewName:(NSString*)currentViewName extraData: (
MintLimitedExtraData*)extraDataDictionary;
440 - (void)setSessionInterval:(NSInteger)intervalInSeconds;
454 void MintLog(MintLogLevel logLevel, NSString* message, ...) NS_FORMAT_FUNCTION(2,3);
462 - (
void)addExtraData:(NSString*)value forKey:(NSString *)key;
477 - (NSString*)extraDataForKey:(NSString *)key;
484 - (
void)removeExtraDataForKey:(NSString*)key;
501 - (NSString*)startTimerWithName:(NSString*)timerName;
507 - (
void)stopTimerWithId:(NSString*)timerId;
513 - (
void)logMethodTrace:(NSDictionary*)traceInfo;
520 - (
void)logMemoryWarningWithClassName:(NSString*)className;
528 - (
void)setLocation:(CLLocation*)location;
536 - (
void)setAutoFlushMinimumInterval:(NSTimeInterval)interval;