Skip to content

Commit

Permalink
Add unit tests. Rename KLL_WARN to KLL_WARNING. Add the log level of …
Browse files Browse the repository at this point in the history
…the logged message to the KeenLogSink protocol.
  • Loading branch information
baumatron committed Feb 20, 2017
1 parent f71efbd commit 42a3d26
Show file tree
Hide file tree
Showing 8 changed files with 300 additions and 9 deletions.
6 changes: 6 additions & 0 deletions KeenClient.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
481A9B7E1E5691270094B985 /* KeenLogSink.h in Headers */ = {isa = PBXBuildFile; fileRef = 481A9B711E5687EA0094B985 /* KeenLogSink.h */; settings = {ATTRIBUTES = (Public, ); }; };
48583E071E58CDE2002CFD99 /* KeenLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 48583E051E58CDE2002CFD99 /* KeenLogger.h */; };
48583E081E58CDE2002CFD99 /* KeenLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 48583E061E58CDE2002CFD99 /* KeenLogger.m */; };
48583E0F1E5904FD002CFD99 /* KeenLoggerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 48583E0E1E5904FD002CFD99 /* KeenLoggerTests.m */; };
A51E31241B03C6EF00008248 /* HTTPCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = A51E31221B03C6EF00008248 /* HTTPCodes.h */; settings = {ATTRIBUTES = (Public, ); }; };
A51E31251B03C6EF00008248 /* HTTPCodes.m in Sources */ = {isa = PBXBuildFile; fileRef = A51E31231B03C6EF00008248 /* HTTPCodes.m */; };
CA6410D818E37E7C00E53E3C /* KIODBStore.h in Headers */ = {isa = PBXBuildFile; fileRef = CA6410D618E37E7C00E53E3C /* KIODBStore.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -184,6 +185,8 @@
481A9B7B1E5690950094B985 /* KeenLogSinkNSLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KeenLogSinkNSLog.m; sourceTree = "<group>"; };
48583E051E58CDE2002CFD99 /* KeenLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeenLogger.h; sourceTree = "<group>"; };
48583E061E58CDE2002CFD99 /* KeenLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KeenLogger.m; sourceTree = "<group>"; };
48583E0D1E5904FD002CFD99 /* KeenLoggerTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeenLoggerTests.h; sourceTree = "<group>"; };
48583E0E1E5904FD002CFD99 /* KeenLoggerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KeenLoggerTests.m; sourceTree = "<group>"; };
A51E31221B03C6EF00008248 /* HTTPCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPCodes.h; sourceTree = "<group>"; };
A51E31231B03C6EF00008248 /* HTTPCodes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPCodes.m; sourceTree = "<group>"; };
A58E0C061AF85F3C00DF2B71 /* KeenSwiftClientExample.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = KeenSwiftClientExample.xcodeproj; path = KeenSwiftClientExample/KeenSwiftClientExample.xcodeproj; sourceTree = "<group>"; };
Expand Down Expand Up @@ -360,6 +363,8 @@
CA6410E118E39F3A00E53E3C /* KIODBStoreTests.m */,
3E63D9F51AE7425000E57A17 /* KIOQueryTests.h */,
3E63D9F61AE7425000E57A17 /* KIOQueryTests.m */,
48583E0D1E5904FD002CFD99 /* KeenLoggerTests.h */,
48583E0E1E5904FD002CFD99 /* KeenLoggerTests.m */,
);
path = KeenClientTests;
sourceTree = "<group>";
Expand Down Expand Up @@ -712,6 +717,7 @@
files = (
CA6410E218E39F3A00E53E3C /* KIODBStoreTests.m in Sources */,
3E63D9F71AE7425000E57A17 /* KIOQueryTests.m in Sources */,
48583E0F1E5904FD002CFD99 /* KeenLoggerTests.m in Sources */,
017EE13F14E30C96000F3868 /* KeenClientTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down
5 changes: 3 additions & 2 deletions KeenClient/KeenClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,8 @@ typedef NSDictionary* (^KeenGlobalPropertiesBlock)(NSString *eventCollection);
+ (void)removeLogSink:(id<KeenLogSink>)sink;

/**
Set the verbosity of logging that will be sent to the sinks
Set the verbosity of logging that will be sent to the sinks.
The default log level is KLL_ERROR.
*/
+ (void)setLogLevel:(KeenLogLevel)level;

Expand All @@ -393,7 +394,7 @@ typedef NSDictionary* (^KeenGlobalPropertiesBlock)(NSString *eventCollection);

// defines the KCLog macro
#define KCLogError(message, ...) { [KeenClient logMessageWithLevel:KLL_ERROR andMessage:[NSString stringWithFormat:message, ##__VA_ARGS__]]; }
#define KCLogWarn(message, ...) { [KeenClient logMessageWithLevel:KLL_WARN andMessage:[NSString stringWithFormat:message, ##__VA_ARGS__]]; }
#define KCLogWarn(message, ...) { [KeenClient logMessageWithLevel:KLL_WARNING andMessage:[NSString stringWithFormat:message, ##__VA_ARGS__]]; }
#define KCLogInfo(message, ...) { [KeenClient logMessageWithLevel:KLL_INFO andMessage:[NSString stringWithFormat:message, ##__VA_ARGS__]]; }
#define KCLogVerbose(message, ...) { [KeenClient logMessageWithLevel:KLL_VERBOSE andMessage:[NSString stringWithFormat:message, ##__VA_ARGS__]]; }

Expand Down
4 changes: 2 additions & 2 deletions KeenClient/KeenLogSink.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
// be logged.
typedef enum {
KLL_ERROR = 1,
KLL_WARN = 2,
KLL_WARNING = 2,
KLL_INFO = 3,
KLL_VERBOSE = 4
} KeenLogLevel;
Expand All @@ -25,7 +25,7 @@ typedef enum {
//
@protocol KeenLogSink

- (void)logMessage:(NSString*)message;
- (void)logMessageWithLevel:(KeenLogLevel)msgLevel andMessage:(NSString*)message;

// Even after calling KeenClient removeLogSink, a sink will
// receive messages that had already been queued before the call
Expand Down
19 changes: 17 additions & 2 deletions KeenClient/KeenLogSinkNSLog.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,23 @@

@implementation KeenLogSinkNSLog

- (void)logMessage:(NSString*)message {
NSLog(@"%@", message);
- (void)logMessageWithLevel:(KeenLogLevel)msgLevel andMessage:(NSString*)message {
NSString* logPrefix;
switch (msgLevel) {
case KLL_ERROR:
logPrefix = @"E:";
break;
case KLL_WARNING:
logPrefix = @"W:";
break;
case KLL_INFO:
logPrefix = @"I:";
break;
case KLL_VERBOSE:
logPrefix = @"V:";
break;
}
NSLog(@"%@%@", logPrefix, message);
}

- (void)onRemoved {
Expand Down
2 changes: 1 addition & 1 deletion KeenClient/KeenLogger.m
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ - (void)logMessageWithLevel:(KeenLogLevel)msgLevel andMessage:(NSString*)message
if (logSinksEnabled &&
msgLevel <= logLevel) {
for (id<KeenLogSink> sink in logSinks) {
[sink logMessage:message];
[sink logMessageWithLevel:msgLevel andMessage:message];

This comment has been minimized.

Copy link
@masojus

masojus Feb 23, 2017

Collaborator

Should the onus be on the KeenLogSink impl to handle nil/empty messages? Not a big deal probably.

}
}
});
Expand Down
1 change: 1 addition & 0 deletions KeenClientTests/KeenClientTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ - (void)setUp {
[[KeenClient sharedClient] setProjectID:nil];
[[KeenClient sharedClient] setWriteKey:nil];
[[KeenClient sharedClient] setReadKey:nil];
[KeenClient setLogLevel:KLL_VERBOSE];
[KeenClient enableLogging];
[[KeenClient sharedClient] setGlobalPropertiesBlock:nil];
[[KeenClient sharedClient] setGlobalPropertiesDictionary:nil];
Expand Down
4 changes: 2 additions & 2 deletions KeenClientTests/KeenLoggerTests.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
// Copyright © 2017 Keen Labs. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <XCTest/XCTest.h>

@interface KeenLoggerTests : NSObject
@interface KeenLoggerTests : XCTestCase

@end

0 comments on commit 42a3d26

Please sign in to comment.