Skip to content

Commit

Permalink
Solve PR comments
Browse files Browse the repository at this point in the history
  • Loading branch information
dianaafanador3 committed Jun 25, 2024
1 parent fea2867 commit 734224d
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 72 deletions.
91 changes: 42 additions & 49 deletions Realm/RLMLogger.mm
Original file line number Diff line number Diff line change
Expand Up @@ -75,53 +75,47 @@ static RLMLogLevel logLevelForLevel(Level logLevel) {
REALM_UNREACHABLE(); // Unrecognized log level.
}

static NSArray<NSString *> *categories = [NSArray arrayWithObjects:
@"Realm",
@"Realm.SDK",
@"Realm.App",
@"Realm.Storage",
@"Realm.Storage.Transaction",
@"Realm.Storage.Query",
@"Realm.Storage.Object",
@"Realm.Storage.Notification",
@"Realm.Sync",
@"Realm.Sync.Client",
@"Realm.Sync.Client.Session",
@"Realm.Sync.Client.Changeset",
@"Realm.Sync.Client.Network",
@"Realm.Sync.Client.Reset",
@"Realm.Sync.Server",
nil];

static std::string categoryNameForLogCategory(RLMLogCategory logCategory) {
if (logCategory < [categories count]) {
if (auto categoryName = [categories objectAtIndex:logCategory]) {
return categoryName.UTF8String;
}
}
static LogCategory& categoryForLogCategory(RLMLogCategory logCategory) {
switch (logCategory) {
case RLMLogCategoryRealm: return LogCategory::realm;
case RLMLogCategoryRealmSDK: return LogCategory::sdk;
case RLMLogCategoryRealmApp: return LogCategory::app;
case RLMLogCategoryRealmStorage: return LogCategory::storage;
case RLMLogCategoryRealmStorageTransaction: return LogCategory::transaction;
case RLMLogCategoryRealmStorageQuery: return LogCategory::query;
case RLMLogCategoryRealmStorageObject: return LogCategory::object;
case RLMLogCategoryRealmStorageNotification: return LogCategory::notification;
case RLMLogCategoryRealmSync: return LogCategory::sync;
case RLMLogCategoryRealmSyncClient: return LogCategory::client;
case RLMLogCategoryRealmSyncClientSession: return LogCategory::session;
case RLMLogCategoryRealmSyncClientChangeset: return LogCategory::changeset;
case RLMLogCategoryRealmSyncClientNetwork: return LogCategory::network;
case RLMLogCategoryRealmSyncClientReset: return LogCategory::reset;
case RLMLogCategoryRealmSyncServer: return LogCategory::server;
};
REALM_UNREACHABLE();
}

static RLMLogCategory logCategoryForCategoryName(std::string category) {
auto index = [categories indexOfObject:RLMStringDataToNSString(category)];
if (index != NSNotFound) {
switch (index) {
case 0: return RLMLogCategoryRealm;
case 1: return RLMLogCategoryRealmSDK;
case 2: return RLMLogCategoryRealmApp;
case 3: return RLMLogCategoryRealmStorage;
case 4: return RLMLogCategoryRealmStorageTransaction;
case 5: return RLMLogCategoryRealmStorageQuery;
case 6: return RLMLogCategoryRealmStorageObject;
case 7: return RLMLogCategoryRealmStorageNotification;
case 8: return RLMLogCategoryRealmSync;
case 9: return RLMLogCategoryRealmSyncClient;
case 10: return RLMLogCategoryRealmSyncClientSession;
case 11: return RLMLogCategoryRealmSyncClientChangeset;
case 12: return RLMLogCategoryRealmSyncClientNetwork;
case 13: return RLMLogCategoryRealmSyncClientReset;
case 14: return RLMLogCategoryRealmSyncServer;
}
NSDictionary *categories = @{
@"Realm": @(RLMLogCategoryRealm),
@"Realm.SDK": @(RLMLogCategoryRealmSDK),
@"Realm.App": @(RLMLogCategoryRealmApp),
@"Realm.Storage": @(RLMLogCategoryRealmStorage),
@"Realm.Storage.Transaction": @(RLMLogCategoryRealmStorageTransaction),
@"Realm.Storage.Query": @(RLMLogCategoryRealmStorageQuery),
@"Realm.Storage.Object": @(RLMLogCategoryRealmStorageObject),
@"Realm.Storage.Notification": @(RLMLogCategoryRealmStorageNotification),
@"Realm.Sync": @(RLMLogCategoryRealmSync),
@"Realm.Sync.Client": @(RLMLogCategoryRealmSyncClient),
@"Realm.Sync.Client.Session": @(RLMLogCategoryRealmSyncClientSession),
@"Realm.Sync.Client.Changeset": @(RLMLogCategoryRealmSyncClientChangeset),
@"Realm.Sync.Client.Network": @(RLMLogCategoryRealmSyncClientNetwork),
@"Realm.Sync.Client.Reset": @(RLMLogCategoryRealmSyncClientReset),
@"Realm.Sync.Server": @(RLMLogCategoryRealmSyncServer)
};
if (NSNumber *logCategory = [categories objectForKey:RLMStringDataToNSString(category)]) {
return RLMLogCategory([logCategory intValue]);
}
REALM_UNREACHABLE();
}
Expand Down Expand Up @@ -210,10 +204,9 @@ - (void)logWithLevel:(RLMLogLevel)logLevel message:(NSString *)message, ... {

- (void)logWithLevel:(RLMLogLevel)logLevel category:(RLMLogCategory)category message:(NSString *)message {
auto level = levelForLogLevel(logLevel);
auto cat = categoryNameForLogCategory(category);
LogCategory& lcat = LogCategory::get_category(cat);
if (_logger->would_log(lcat, level)) {
_logger->log(lcat, levelForLogLevel(logLevel), message.UTF8String);
LogCategory& cat = categoryForLogCategory(category);
if (_logger->would_log(cat, level)) {
_logger->log(cat, levelForLogLevel(logLevel), message.UTF8String);
}
}

Expand All @@ -227,12 +220,12 @@ - (void)logWithLevel:(RLMLogLevel)logLevel categoryName:(NSString *)categoryName

+ (void)setLevel:(RLMLogLevel)level forCategory:(RLMLogCategory)category {
auto defaultLogger = Logger::get_default_logger();
defaultLogger->set_level_threshold(categoryNameForLogCategory(category), levelForLogLevel(level));
defaultLogger->set_level_threshold(categoryForLogCategory(category).get_name(), levelForLogLevel(level));
}

+ (RLMLogLevel)levelForCategory:(RLMLogCategory)category {
auto defaultLogger = Logger::get_default_logger();
return logLevelForLevel(defaultLogger->get_level_threshold(categoryNameForLogCategory(category)));
return logLevelForLevel(defaultLogger->get_level_threshold(categoryForLogCategory(category).get_name()));
}

#pragma mark Testing
Expand Down
2 changes: 1 addition & 1 deletion Realm/Tests/SwiftUISyncTestHost/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ class LoginHelper: ObservableObject {
private let appConfig = AppConfiguration(baseURL: "http://localhost:9090")

func login(email: String, password: String, completion: @escaping (User) -> Void) {
Logger.shared.setLogLevel(.all, category: Category.Realm)
Logger.setLogLevel(.all, for: Category.realm)
let app = RealmSwift.App(id: ProcessInfo.processInfo.environment["app_id"]!, configuration: appConfig)
app.login(credentials: .emailPassword(email: email, password: password))
.receive(on: DispatchQueue.main)
Expand Down
29 changes: 7 additions & 22 deletions RealmSwift/Logger.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ import Realm.Private
Logger.shared = logger
```
- note: By default log threshold level is `.info`, for the log category `.Category.realm`,
- note: The default log threshold level is `.info`, for the log category `.Category.realm`,
and logging strings are output to Apple System Logger.
- SeeAlso: `LogCategory`
*/
Expand All @@ -67,7 +67,7 @@ extension Logger {
- parameter category: The log category for the message.
- parameter message: The message to log.
*/
internal func log(level: LogLevel, category: LogCategory = Category.realm, message: String) {
internal func log(level: LogLevel, category: LogCategory = Category.sdk, message: String) {
self.log(with: level, category: ObjectiveCSupport.convert(value: category), message: message)
}

Expand Down Expand Up @@ -175,21 +175,6 @@ public enum Category: String, LogCategory {
/// Log category for all app related logs.
case app = "Realm.App"

/// :nodoc:
fileprivate static func fromString(_ string: String) -> LogCategory? {
if let category = Category(rawValue: string) {
return category
} else if let storage = Storage(rawValue: string) {
return storage
} else if let sync = Sync(rawValue: string) {
return sync
} else if let client = Sync.Client(rawValue: string) {
return client
} else {
return nil
}
}

/**
Log category for all storage related logs.
Expand Down Expand Up @@ -240,11 +225,11 @@ public enum Category: String, LogCategory {
Category hierarchy:
```
Storage
├─► Transaction
├─► Query
├─► Object
└─► Notification
Client
├─► Session
├─► Changeset
├─► Network
└─► Reset
```
*/
public enum Client: String, LogCategory {
Expand Down

0 comments on commit 734224d

Please sign in to comment.