Skip to content

Commit

Permalink
Add log parameters
Browse files Browse the repository at this point in the history
00d31d77a47d2e12e28bae06efc6694aedf68a5a
  • Loading branch information
Sergey70 committed Jul 25, 2024
1 parent 933c6b0 commit a303a87
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 41 deletions.
3 changes: 1 addition & 2 deletions AppMetricaCore/Sources/AMAAppMetricaImpl.m
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,8 @@ - (void)logMetricaStart
buildType = @"Release";
#endif
NSString *versionName = [AMAPlatformDescription SDKVersionName];
unsigned long buildNumber = (unsigned long)[AMAPlatformDescription SDKBuildNumber];

AMALogNotify(@"AppMetrica activated with apiKey:%@ \nVersion:%@, %@ build %lu", self.apiKey, versionName, buildType, buildNumber);
AMALogNotify(@"AppMetrica activated with apiKey:%@ \nVersion:%@, %@", self.apiKey, versionName, buildType);
}

- (void)dealloc
Expand Down
2 changes: 1 addition & 1 deletion AppMetricaCore/Sources/Logging/AMAEventLogger.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

- (instancetype)initWithApiKey:(NSString *)apiKey;

- (void)logClientEventReceivedWithName:(NSString *)name;
- (void)logClientEventReceivedWithName:(NSString *)name parameters:(NSDictionary *)parameters;
- (void)logProfileEventReceived;
- (void)logRevenueEventReceived;
- (void)logECommerceEventReceived;
Expand Down
57 changes: 35 additions & 22 deletions AppMetricaCore/Sources/Logging/AMAEventLogger.m
Original file line number Diff line number Diff line change
Expand Up @@ -80,29 +80,40 @@ - (NSString *)eventDescriptionWithEventName:(NSString *)name
eventOid:(NSNumber *)eventOid
sessionOid:(NSNumber *)sessionOid
sequenceNumber:(NSNumber *)sequenceNumber
{
return [NSString stringWithFormat:@"eventOid %@, "
"sessionOid %@, "
"sequenceNumber %@, "
"name '%@'",
eventOid, sessionOid, sequenceNumber, name];
parameters:(NSDictionary *)parameters
{
NSMutableString *description = [NSMutableString stringWithFormat:@"eventOid %@, "
"sessionOid %@, "
"sequenceNumber %@, "
"name '%@'",
eventOid, sessionOid, sequenceNumber, name];

if (parameters != nil) {
[description appendFormat:@", parameters %@", parameters];
}
return description;
}

- (void)logAction:(NSString *)action eventType:(AMAEventType)eventType eventName:(NSString *)eventName
- (void)logAction:(NSString *)action
eventType:(AMAEventType)eventType
eventName:(NSString *)eventName
parameters:(NSDictionary *)parameters
{
NSString *description = [self eventDescriptionWithEventName:eventName
eventOid:nil
sessionOid:nil
sequenceNumber:nil];
sequenceNumber:nil
parameters:parameters];
[self logAction:action eventType:eventType description:description];
}

- (void)logAction:(NSString *)action event:(AMAEvent *)event
- (void)logAction:(NSString *)action event:(AMAEvent *)event parameters:(NSDictionary *)parameters
{
NSString *description = [self eventDescriptionWithEventName:event.name
eventOid:event.oid
sessionOid:event.sessionOid
sequenceNumber:@(event.sequenceNumber)];
sequenceNumber:@(event.sequenceNumber)
parameters:parameters];
[self logAction:action eventType:event.type description:description];
}

Expand Down Expand Up @@ -130,54 +141,56 @@ - (void)logAction:(NSString *)action
AMALogInfo(@"%@", message);
}

- (void)logEventReceivedWithName:(NSString *)name type:(AMAEventType)type
- (void)logEventReceivedWithName:(NSString *)name
type:(AMAEventType)type
parameters:(NSDictionary *)parameters
{
[self logAction:@"received" eventType:type eventName:name];
[self logAction:@"received" eventType:type eventName:name parameters:parameters];
}

- (void)logClientEventReceivedWithName:(NSString *)name
- (void)logClientEventReceivedWithName:(NSString *)name parameters:(NSDictionary *)parameters
{
[self logEventReceivedWithName:name type:AMAEventTypeClient];
[self logEventReceivedWithName:name type:AMAEventTypeClient parameters:parameters];
}

- (void)logProfileEventReceived
{
[self logEventReceivedWithName:nil type:AMAEventTypeProfile];
[self logEventReceivedWithName:nil type:AMAEventTypeProfile parameters:nil];
}

- (void)logRevenueEventReceived
{
[self logEventReceivedWithName:nil type:AMAEventTypeRevenue];
[self logEventReceivedWithName:nil type:AMAEventTypeRevenue parameters:nil];
}

- (void)logECommerceEventReceived
{
[self logEventReceivedWithName:nil type:AMAEventTypeECommerce];
[self logEventReceivedWithName:nil type:AMAEventTypeECommerce parameters:nil];
}

- (void)logAdRevenueEventReceived
{
[self logEventReceivedWithName:nil type:AMAEventTypeAdRevenue];
[self logEventReceivedWithName:nil type:AMAEventTypeAdRevenue parameters:nil];
}

- (void)logEventBuilt:(AMAEvent *)event
{
[self logAction:@"built" event:event];
[self logAction:@"built" event:event parameters:nil];
}

- (void)logEventSaved:(AMAEvent *)event
{
[self logAction:@"saved to db" event:event];
[self logAction:@"saved to db" event:event parameters:nil];
}

- (void)logEventPurged:(AMAEvent *)event
{
[self logAction:@"removed from db" event:event];
[self logAction:@"removed from db" event:event parameters:nil];
}

- (void)logEventSent:(AMAEvent *)event
{
[self logAction:@"sent" event:event];
[self logAction:@"sent" event:event parameters:nil];
}

+ (instancetype)sharedInstanceForApiKey:(NSString *)apiKey
Expand Down
2 changes: 1 addition & 1 deletion AppMetricaCore/Sources/Reporter/AMAReporter.m
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ - (void)reportEvent:(NSString *)eventName
[self.attributionChecker checkClientEventAttribution:eventName];
eventName = [eventName copy];
params = [params copy];
[[self logger] logClientEventReceivedWithName:eventName];
[[self logger] logClientEventReceivedWithName:eventName parameters:params];
[self reportCommonEventWithBlock:^AMAEvent *(NSError **error) {
AMAOptionalBool firstOccurrence = [self.occurrenceController isEventNameFirstOccurred:eventName];
return [self.eventBuilder clientEventNamed:eventName
Expand Down
40 changes: 25 additions & 15 deletions AppMetricaCore/Tests/AMAEventLoggerTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,16 @@
NSString *(^textWithApiKeySuffix)(NSString *) = ^(NSString *text) {
return [NSString stringWithFormat:@"%@ (apiKey: d9b4296b-xxxx-xxxx-xxxx-xxxxxxxxc4cc).", text];
};

context(@"Log enabled", ^{
beforeEach(^{
[reporterConfiguration stub:@selector(logsEnabled) andReturn:theValue(YES)];
});
NSString *(^suffixWithNullMetainfo)(NSString *, NSString *) = ^(NSString *prefix, NSString *eventName) {
NSString *(^suffixWithNullMetainfo)(NSString *, NSString *, NSString *) = ^(NSString *prefix,
NSString *eventName,
NSString *extraArguments) {
NSString *text = [NSString stringWithFormat:@"%@ eventOid (null), sessionOid (null), "
"sequenceNumber (null), name '%@'.", prefix, eventName];
"sequenceNumber (null), name '%@'%@.", prefix, eventName, extraArguments ?: @""];
return textWithApiKeySuffix(text);
};
NSString *(^suffixWithPopulatedlMetainfo)(NSString *, NSString *) = ^(NSString *prefix, NSString *eventName) {
Expand All @@ -65,29 +67,32 @@
};
context(@"Client event received", ^{
it(@"Should log", ^{
[logger logClientEventReceivedWithName:eventName];
NSString *expectedText = suffixWithNullMetainfo(@"Client event is received:", @"EVENT_NAME");
NSDictionary *params = @{ @"foo" : @"bar" };
[logger logClientEventReceivedWithName:eventName parameters:params];
NSString *expectedText = suffixWithNullMetainfo(@"Client event is received:",
@"EVENT_NAME",
[NSString stringWithFormat:@", parameters %@", params]);
[[logSpy.messages should] equal:@[ message(expectedText) ]];
});
});
context(@"Profile event received", ^{
it(@"Should log", ^{
[logger logProfileEventReceived];
NSString *expectedText = suffixWithNullMetainfo(@"Profile event is received:", nil);
NSString *expectedText = suffixWithNullMetainfo(@"Profile event is received:", nil, nil);
[[logSpy.messages should] equal:@[ message(expectedText) ]];
});
});
context(@"Revenue event received", ^{
it(@"Should log", ^{
[logger logRevenueEventReceived];
NSString *expectedText = suffixWithNullMetainfo(@"Revenue event is received:", nil);
NSString *expectedText = suffixWithNullMetainfo(@"Revenue event is received:", nil, nil);
[[logSpy.messages should] equal:@[ message(expectedText) ]];
});
});
context(@"AdRevenue event received", ^{
it(@"Should log", ^{
[logger logAdRevenueEventReceived];
NSString *expectedText = suffixWithNullMetainfo(@"AdRevenue event is received:", nil);
NSString *expectedText = suffixWithNullMetainfo(@"AdRevenue event is received:", nil, nil);
[[logSpy.messages should] equal:@[ message(expectedText) ]];
});
});
Expand Down Expand Up @@ -206,27 +211,32 @@
return textWithApiKeySuffix(text);
};
context(@"Received", ^{
NSString *(^textForEventWithTypeName)(NSString *, NSString *) = ^(NSString *typeName, NSString *eventName) {
NSString *(^textForEventWithTypeName)(NSString *, NSString *, NSString *) = ^(NSString *typeName,
NSString *eventName,
NSString *extraArguments) {
NSString *text =
[NSString stringWithFormat:@"%@ event is received: eventOid (null), sessionOid (null), "
"sequenceNumber (null), name '%@'.", typeName, eventName];
"sequenceNumber (null), name '%@'%@.", typeName, eventName, extraArguments ?: @""];
return textWithApiKeySuffix(text);
};
it(@"Should log client event", ^{
[logger logClientEventReceivedWithName:eventName];
[[logSpy.messages should] equal:@[ message(textForEventWithTypeName(@"Client", eventName)) ]];
NSDictionary *params = @{ @"foo" : @"bar" };
[logger logClientEventReceivedWithName:eventName parameters:params];
[[logSpy.messages should] equal:@[ message(textForEventWithTypeName(@"Client",
eventName,
[NSString stringWithFormat:@", parameters %@", params])) ]];
});
it(@"Should log profile event", ^{
[logger logProfileEventReceived];
[[logSpy.messages should] equal:@[ message(textForEventWithTypeName(@"Profile", nil)) ]];
[[logSpy.messages should] equal:@[ message(textForEventWithTypeName(@"Profile", nil, nil)) ]];
});
it(@"Should log revenue event", ^{
[logger logRevenueEventReceived];
[[logSpy.messages should] equal:@[ message(textForEventWithTypeName(@"Revenue", nil)) ]];
[[logSpy.messages should] equal:@[ message(textForEventWithTypeName(@"Revenue", nil, nil)) ]];
});
it(@"Should log adRevenue event", ^{
[logger logAdRevenueEventReceived];
[[logSpy.messages should] equal:@[ message(textForEventWithTypeName(@"AdRevenue", nil)) ]];
[[logSpy.messages should] equal:@[ message(textForEventWithTypeName(@"AdRevenue", nil, nil)) ]];
});
});
context(@"Event built", ^{
Expand Down

0 comments on commit a303a87

Please sign in to comment.