Skip to content

Commit 18b5820

Browse files
committed
Added options for disabling callerDetails
1 parent f49e643 commit 18b5820

File tree

3 files changed

+42
-30
lines changed

3 files changed

+42
-30
lines changed

Branch-TestBed/Branch-SDK-Tests/BranchLoggerTests.m

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,35 +15,26 @@ @interface BranchLoggerTests : XCTestCase
1515

1616
@implementation BranchLoggerTests
1717

18-
- (void)setUp {
19-
[super setUp];
20-
[BranchLogger shared].loggingEnabled = NO;
21-
[BranchLogger shared].logCallback = nil;
22-
}
23-
24-
- (void)tearDown {
25-
[BranchLogger shared].loggingEnabled = NO;
26-
[BranchLogger shared].logCallback = nil;
27-
[super tearDown];
28-
}
29-
3018
- (void)testEnableLoggingSetsCorrectDefaultLevel {
3119
[[Branch getInstance] enableLogging];
3220
XCTAssertEqual([BranchLogger shared].logLevelThreshold, BranchLogLevelDebug, "Default log level should be Debug.");
3321
}
3422

3523
- (void)testLogLevelThresholdBlocksLowerLevels {
36-
[[Branch getInstance] enableLoggingAtLevel:BranchLogLevelDebug];
24+
BranchLogger *logger = [BranchLogger new];
25+
logger.loggingEnabled = true;
26+
logger.logLevelThreshold = BranchLogLevelDebug;
27+
3728
XCTestExpectation *expectation = [self expectationWithDescription:@"Log callback expectation for message that should pass the threshold"];
3829

39-
[BranchLogger shared].logCallback = ^(NSString * _Nonnull message, BranchLogLevel logLevel, NSError * _Nullable error) {
30+
logger.logCallback = ^(NSString * _Nonnull message, BranchLogLevel logLevel, NSError * _Nullable error) {
4031
if ([message isEqualToString:@"[BranchSDK][Debug][BranchLoggerTests testLogLevelThresholdBlocksLowerLevels] This message should trigger the log callback."] && logLevel >= BranchLogLevelDebug) {
4132
[expectation fulfill];
4233
}
4334
};
4435

45-
[[BranchLogger shared] logVerbose:@"This verbose message should not trigger the log callback."];
46-
[[BranchLogger shared] logDebug:@"This message should trigger the log callback."];
36+
[logger logVerbose:@"This verbose message should not trigger the log callback."];
37+
[logger logDebug:@"This message should trigger the log callback."];
4738

4839
[self waitForExpectationsWithTimeout:1 handler:nil];
4940
}
@@ -53,28 +44,33 @@ - (void)testLogCallbackExecutesWithCorrectParameters {
5344
NSString *expectedMessage = @"[BranchSDK][Info][BranchLoggerTests testLogCallbackExecutesWithCorrectParameters] Test message";
5445
BranchLogLevel expectedLevel = BranchLogLevelInfo;
5546

56-
[BranchLogger shared].logCallback = ^(NSString * _Nonnull message, BranchLogLevel logLevel, NSError * _Nullable error) {
47+
BranchLogger *logger = [BranchLogger new];
48+
49+
logger.logCallback = ^(NSString * _Nonnull message, BranchLogLevel logLevel, NSError * _Nullable error) {
5750
XCTAssertEqualObjects(message, expectedMessage, "Logged message does not match expected message.");
5851
XCTAssertEqual(logLevel, expectedLevel, "Logged level does not match expected level.");
5952
XCTAssertNil(error, "Error should be nil.");
6053
[expectation fulfill];
6154
};
62-
63-
[[Branch getInstance] enableLoggingAtLevel:BranchLogLevelInfo];
64-
[[BranchLogger shared] logInfo:@"Test message"];
55+
56+
logger.loggingEnabled = YES;
57+
logger.logLevelThreshold = BranchLogLevelInfo;
58+
[logger logInfo:@"Test message"];
6559

6660
[self waitForExpectationsWithTimeout:1 handler:nil];
6761
}
6862

6963
- (void)testLogLevelSpecificityFiltersLowerLevels {
70-
[[Branch getInstance] enableLoggingAtLevel:BranchLogLevelWarning];
64+
BranchLogger *logger = [BranchLogger new];
65+
logger.loggingEnabled = YES;
66+
logger.logLevelThreshold = BranchLogLevelWarning;
7167

7268
XCTestExpectation *verboseExpectation = [self expectationWithDescription:@"Verbose log callback"];
7369
verboseExpectation.inverted = YES;
7470
XCTestExpectation *errorExpectation = [self expectationWithDescription:@"Error log callback"];
7571

7672
__block NSUInteger callbackCount = 0;
77-
[BranchLogger shared].logCallback = ^(NSString * _Nonnull message, BranchLogLevel logLevel, NSError * _Nullable error) {
73+
logger.logCallback = ^(NSString * _Nonnull message, BranchLogLevel logLevel, NSError * _Nullable error) {
7874
if (logLevel == BranchLogLevelVerbose) {
7975
[verboseExpectation fulfill];
8076
} else if (logLevel == BranchLogLevelError) {
@@ -83,28 +79,29 @@ - (void)testLogLevelSpecificityFiltersLowerLevels {
8379
callbackCount++;
8480
};
8581

86-
[[BranchLogger shared] logVerbose:@"This should not be logged due to log level threshold."];
87-
[[BranchLogger shared] logError:@"This should be logged" error:nil];
82+
[logger logVerbose:@"This should not be logged due to log level threshold."];
83+
[logger logError:@"This should be logged" error:nil];
8884

8985
[self waitForExpectations:@[verboseExpectation, errorExpectation] timeout:2];
9086
XCTAssertEqual(callbackCount, 1, "Only one log callback should have been invoked.");
9187
}
9288

9389
- (void)testErrorLoggingIncludesErrorDetails {
94-
[[Branch getInstance] enableLogging];
90+
BranchLogger *logger = [BranchLogger new];
91+
logger.loggingEnabled = YES;
92+
9593
XCTestExpectation *expectation = [self expectationWithDescription:@"Error log includes error details"];
9694

9795
NSError *testError = [NSError errorWithDomain:@"TestDomain" code:42 userInfo:@{NSLocalizedDescriptionKey: @"Test error description"}];
98-
[BranchLogger shared].logCallback = ^(NSString * _Nonnull message, BranchLogLevel logLevel, NSError * _Nullable error) {
96+
logger.logCallback = ^(NSString * _Nonnull message, BranchLogLevel logLevel, NSError * _Nullable error) {
9997
if ([message containsString:@"Test error description"] && error == testError) {
10098
[expectation fulfill];
10199
}
102100
};
103101

104-
[[BranchLogger shared] logError:@"Testing error logging" error:testError];
102+
[logger logError:@"Testing error logging" error:testError];
105103

106104
[self waitForExpectationsWithTimeout:1 handler:nil];
107105
}
108106

109-
110107
@end

BranchSDK/BranchLogger.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,14 @@ NS_ASSUME_NONNULL_BEGIN
2323
@interface BranchLogger : NSObject
2424

2525
@property (nonatomic, assign) BOOL loggingEnabled;
26+
@property (nonatomic, assign) BOOL includeCallerDetails;
2627
@property (nonatomic, copy, nullable) BranchLogCallback logCallback;
2728
@property (nonatomic, assign) BranchLogLevel logLevelThreshold;
2829

2930
+ (instancetype _Nonnull)shared;
3031

32+
- (void)disableCallerDetails;
33+
3134
- (void)logError:(NSString * _Nonnull)message error:(NSError * _Nullable)error;
3235
- (void)logWarning:(NSString * _Nonnull)message;
3336
- (void)logInfo:(NSString * _Nonnull)message;

BranchSDK/BranchLogger.m

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@
1111

1212
@implementation BranchLogger
1313

14-
static BranchLogLevel _logLevelThreshold = BranchLogLevelDebug;
14+
- (instancetype)init {
15+
if ((self = [super init])) {
16+
_loggingEnabled = NO;
17+
_logLevelThreshold = BranchLogLevelDebug;
18+
_includeCallerDetails = YES;
19+
}
20+
return self;
21+
}
1522

1623
+ (instancetype)shared {
1724
static BranchLogger *sharedInstance = nil;
@@ -20,10 +27,15 @@ + (instancetype)shared {
2027
sharedInstance = [[BranchLogger alloc] init];
2128
sharedInstance.loggingEnabled = NO;
2229
sharedInstance.logLevelThreshold = BranchLogLevelDebug;
30+
sharedInstance.includeCallerDetails = YES;
2331
});
2432
return sharedInstance;
2533
}
2634

35+
- (void)disableCallerDetails {
36+
self.includeCallerDetails = NO;
37+
}
38+
2739
- (void)logError:(NSString *)message error:(NSError *_Nullable)error {
2840
[self logMessage:message withLevel:BranchLogLevelError error:error];
2941
}
@@ -49,7 +61,7 @@ - (void)logMessage:(NSString *)message withLevel:(BranchLogLevel)level error:(NS
4961
return;
5062
}
5163

52-
NSString *callerDetails = [self callingClass];
64+
NSString *callerDetails = self.includeCallerDetails ? [self callingClass] : @"";
5365
NSString *logLevelString = [self stringForLogLevel:level];
5466
NSString *logTag = [NSString stringWithFormat:@"[BranchSDK][%@]", logLevelString];
5567
NSMutableString *fullMessage = [NSMutableString stringWithFormat:@"%@%@ %@", logTag, callerDetails, message];

0 commit comments

Comments
 (0)