Change visibility of system error messages included in logs so that they are useful in production

This commit is contained in:
Maurice Parker
2022-09-29 15:19:08 -05:00
parent 67f9708798
commit e520c45032
22 changed files with 44 additions and 44 deletions

View File

@@ -48,7 +48,7 @@ final class AccountMetadataFile: Logging {
let data = try encoder.encode(account.metadata)
try data.write(to: fileURL)
} catch let error {
logger.error("Save to disk failed: \(error.localizedDescription)")
logger.error("Save to disk failed: \(error.localizedDescription, privacy: .public)")
}
}

View File

@@ -21,7 +21,7 @@ public struct AccountSyncError: Logging {
init(account: Account, error: Error) {
self.account = account
self.error = error
AccountSyncError.logger.error("Account Sync Error: \(error.localizedDescription)")
AccountSyncError.logger.error("Account Sync Error: \(error.localizedDescription, privacy: .public)")
}
}

View File

@@ -46,12 +46,12 @@ class CloudKitArticlesZoneDelegate: CloudKitZoneDelegate, Logging {
}
case .failure(let error):
self.logger.error("Error occurred getting pending starred records: \(error.localizedDescription)")
self.logger.error("Error occurred getting pending starred records: \(error.localizedDescription, privacy: .public)")
completion(.failure(CloudKitZoneError.unknown))
}
}
case .failure(let error):
self.logger.error("Error occurred getting pending read status records: \(error.localizedDescription)")
self.logger.error("Error occurred getting pending read status records: \(error.localizedDescription, privacy: .public)")
completion(.failure(CloudKitZoneError.unknown))
}

View File

@@ -38,7 +38,7 @@ class CloudKitReceiveStatusOperation: MainThreadOperation, Logging {
case .success:
self.operationDelegate?.operationDidComplete(self)
case .failure(let error):
self.logger.debug("Receive status error: \(error.localizedDescription)")
self.logger.debug("Receive status error: \(error.localizedDescription, privacy: .public)")
self.operationDelegate?.cancelOperation(self)
}
}

View File

@@ -145,7 +145,7 @@ private extension CloudKitSendStatusOperation {
case .failure(let error):
self.database.resetSelectedForProcessing(syncStatuses.map({ $0.articleID })) { _ in
self.processAccountError(account, error)
self.logger.error("Send article status modify articles error: \(error.localizedDescription)")
self.logger.error("Send article status modify articles error: \(error.localizedDescription, privacy: .public)")
completion(true)
}
}
@@ -159,7 +159,7 @@ private extension CloudKitSendStatusOperation {
processWithArticles(articles)
case .failure(let databaseError):
self.database.resetSelectedForProcessing(syncStatuses.map({ $0.articleID })) { _ in
self.logger.error("Send article status fetch articles error: \(databaseError.localizedDescription)")
self.logger.error("Send article status fetch articles error: \(databaseError.localizedDescription, privacy: .public)")
completion(true)
}
}

View File

@@ -150,12 +150,12 @@ final class FeedlyAccountDelegate: AccountDelegate, Logging {
case .success:
completion?(.success(()))
case .failure(let error):
self.logger.error("Failed to refresh article status for account \(String(describing: account.type)): \(error.localizedDescription)")
self.logger.error("Failed to refresh article status for account \(String(describing: account.type)): \(error.localizedDescription, privacy: .public)")
completion?(.failure(error))
}
}
case .failure(let error):
self.logger.error("Failed to send article status for account \(String(describing: account.type)): \(error.localizedDescription)")
self.logger.error("Failed to send article status for account \(String(describing: account.type)): \(error.localizedDescription, privacy: .public)")
completion?(.failure(error))
}
}
@@ -232,7 +232,7 @@ final class FeedlyAccountDelegate: AccountDelegate, Logging {
completion(.success(()))
}
case .failure(let error):
self.logger.error("Import OPML failed: \(error.localizedDescription)")
self.logger.error("Import OPML failed: \(error.localizedDescription, privacy: .public)")
self.refreshProgress.completeTask()
self.isOPMLImportInProgress = false
DispatchQueue.main.async {
@@ -490,7 +490,7 @@ final class FeedlyAccountDelegate: AccountDelegate, Logging {
case .success:
break
case .failure(let error):
self.logger.error("Restore folder feed error: \(error.localizedDescription)")
self.logger.error("Restore folder feed error: \(error.localizedDescription, privacy: .public)")
}
}

View File

@@ -84,7 +84,7 @@ extension FeedlyDownloadArticlesOperation: FeedlyOperationDelegate {
assert(Thread.isMainThread)
// Having this log is useful for debugging missing required JSON keys in the response from Feedly, for example.
self.logger.debug("\(String(describing: operation)) failed with error: \(error.localizedDescription)")
self.logger.debug("\(String(describing: operation)) failed with error: \(error.localizedDescription, privacy: .public)")
cancel()
}

View File

@@ -27,7 +27,7 @@ final class FeedlyFetchIdsForMissingArticlesOperation: FeedlyOperation, FeedlyEn
self.didFinish()
case .failure(let error):
self.logger.error("Failed to fetch articleIDs: \(error.localizedDescription).")
self.logger.error("Failed to fetch articleIDs: \(error.localizedDescription, privacy: .public).")
self.didFinish(with: error)
}
}

View File

@@ -35,7 +35,7 @@ final class FeedlyGetCollectionsOperation: FeedlyOperation, FeedlyCollectionProv
self.didFinish()
case .failure(let error):
self.logger.error("Unable to request collections: \(error.localizedDescription).")
self.logger.error("Unable to request collections: \(error.localizedDescription, privacy: .public).")
self.didFinish(with: error)
}
}

View File

@@ -60,7 +60,7 @@ final class FeedlyGetEntriesOperation: FeedlyOperation, FeedlyEntryProviding, Fe
self.didFinish()
case .failure(let error):
self.logger.error("Unable to get entries: \(error.localizedDescription)")
self.logger.error("Unable to get entries: \(error.localizedDescription, privacy: .public)")
self.didFinish(with: error)
}
}

View File

@@ -106,7 +106,7 @@ final class FeedlyGetStreamContentsOperation: FeedlyOperation, FeedlyEntryProvid
self.didFinish()
case .failure(let error):
self.logger.error("Unable to get stream contents: \(error.localizedDescription)")
self.logger.error("Unable to get stream contents: \(error.localizedDescription, privacy: .public)")
self.didFinish(with: error)
}
}

View File

@@ -55,7 +55,7 @@ final class FeedlyGetStreamIdsOperation: FeedlyOperation, FeedlyEntryIdentifierP
self.didFinish()
case .failure(let error):
self.logger.error("Unable to get stream ids: \(error.localizedDescription)")
self.logger.error("Unable to get stream ids: \(error.localizedDescription, privacy: .public)")
self.didFinish(with: error)
}
}

View File

@@ -72,7 +72,7 @@ class FeedlyGetUpdatedArticleIdsOperation: FeedlyOperation, FeedlyEntryIdentifie
getStreamIds(continuation)
case .failure(let error):
self.logger.error("Error getting FeedlyStreamIds: \(error.localizedDescription).")
self.logger.error("Error getting FeedlyStreamIds: \(error.localizedDescription, privacy: .public).")
didFinish(with: error)
}
}

View File

@@ -42,7 +42,7 @@ final class FeedlyLogoutOperation: FeedlyOperation, Logging {
didFinish()
case .failure(let error):
self.logger.error("Logout failed because: \(error.localizedDescription)")
self.logger.error("Logout failed because: \(error.localizedDescription, privacy: .public)")
didFinish(with: error)
}
}

View File

@@ -158,7 +158,7 @@ extension FeedlySyncAllOperation: FeedlyOperationDelegate {
assert(Thread.isMainThread)
// Having this log is useful for debugging missing required JSON keys in the response from Feedly, for example.
logger.debug("\(String(describing: operation)) failed with error: \(error.localizedDescription).")
logger.debug("\(String(describing: operation)) failed with error: \(error.localizedDescription, privacy: .public).")
syncCompletionHandler?(.failure(error))
syncCompletionHandler = nil

View File

@@ -65,7 +65,7 @@ final class LocalAccountDelegate: AccountDelegate, Logging {
group.leave()
}
case .failure(let error):
self.logger.error("Feed Provided refresh error: \(error.localizedDescription)")
self.logger.error("Feed Provided refresh error: \(error.localizedDescription, privacy: .public)")
feedProviderError = error
self.refreshProgress.completeTask()
group.leave()

View File

@@ -300,7 +300,7 @@ extension NewsBlurAccountDelegate {
group.leave()
case .failure(let error):
errorOccurred = true
self.logger.error("Story status sync call failed: \(error.localizedDescription)")
self.logger.error("Story status sync call failed: \(error.localizedDescription, privacy: .public)")
self.database.resetSelectedForProcessing(storyHashGroup.map { String($0) } )
group.leave()
}
@@ -359,7 +359,7 @@ extension NewsBlurAccountDelegate {
case .success(let pendingArticleIDs):
process(pendingArticleIDs)
case .failure(let error):
self.logger.error("Sync story read status failed: \(error.localizedDescription)")
self.logger.error("Sync story read status failed: \(error.localizedDescription, privacy: .public)")
}
}
}
@@ -407,7 +407,7 @@ extension NewsBlurAccountDelegate {
case .success(let pendingArticleIDs):
process(pendingArticleIDs)
case .failure(let error):
self.logger.error("Sync story starred status failed: \(error.localizedDescription)")
self.logger.error("Sync story starred status failed: \(error.localizedDescription, privacy: .public)")
}
}
}

View File

@@ -217,7 +217,7 @@ final class NewsBlurAccountDelegate: AccountDelegate, Logging {
}
case .failure(let error):
errorOccurred = true
self.logger.error("Retrieving unread stories failed: \(error.localizedDescription)")
self.logger.error("Retrieving unread stories failed: \(error.localizedDescription, privacy: .public)")
group.leave()
}
}
@@ -231,7 +231,7 @@ final class NewsBlurAccountDelegate: AccountDelegate, Logging {
}
case .failure(let error):
errorOccurred = true
self.logger.error("Retrieving starred stories failed: \(error.localizedDescription)")
self.logger.error("Retrieving starred stories failed: \(error.localizedDescription, privacy: .public)")
group.leave()
}
}
@@ -293,7 +293,7 @@ final class NewsBlurAccountDelegate: AccountDelegate, Logging {
}
case .failure(let error):
errorOccurred = true
self.logger.error("Refreshing missing stories failed: \(error.localizedDescription)")
self.logger.error("Refreshing missing stories failed: \(error.localizedDescription, privacy: .public)")
group.leave()
}
}
@@ -565,12 +565,12 @@ final class NewsBlurAccountDelegate: AccountDelegate, Logging {
case .success:
break
case .failure(let error):
self.logger.error("Restore folder feed error: \(error.localizedDescription)")
self.logger.error("Restore folder feed error: \(error.localizedDescription, privacy: .public)")
}
}
}
case .failure(let error):
self.logger.error("Restore folder feed error: \(error.localizedDescription)")
self.logger.error("Restore folder feed error: \(error.localizedDescription, privacy: .public)")
}
}

View File

@@ -48,7 +48,7 @@ final class OPMLFile: Logging {
do {
try opmlDocumentString.write(to: fileURL, atomically: true, encoding: .utf8)
} catch let error {
logger.error("OPML save to disk failed: \(error.localizedDescription)")
logger.error("OPML save to disk failed: \(error.localizedDescription, privacy: .public)")
}
}
@@ -73,7 +73,7 @@ private extension OPMLFile {
do {
fileData = try Data(contentsOf: fileURL)
} catch {
logger.error("OPML read from disk failed: \(error.localizedDescription)")
logger.error("OPML read from disk failed: \(error.localizedDescription, privacy: .public)")
}
return fileData
@@ -86,7 +86,7 @@ private extension OPMLFile {
do {
opmlDocument = try RSOPMLParser.parseOPML(with: parserData)
} catch {
logger.error("OPML Import failed: \(error.localizedDescription)")
logger.error("OPML Import failed: \(error.localizedDescription, privacy: .public)")
return nil
}

View File

@@ -256,7 +256,7 @@ final class ReaderAPIAccountDelegate: AccountDelegate, Logging {
}
case .failure(let error):
errorOccurred = true
self.logger.info("Retrieving unread entries failed: \(error.localizedDescription)")
self.logger.info("Retrieving unread entries failed: \(error.localizedDescription, privacy: .public)")
group.leave()
}
@@ -271,7 +271,7 @@ final class ReaderAPIAccountDelegate: AccountDelegate, Logging {
}
case .failure(let error):
errorOccurred = true
self.logger.info("Retrieving starred entries failed: \(error.localizedDescription)")
self.logger.info("Retrieving starred entries failed: \(error.localizedDescription, privacy: .public)")
group.leave()
}
@@ -340,7 +340,7 @@ final class ReaderAPIAccountDelegate: AccountDelegate, Logging {
self.clearFolderRelationship(for: feed, folderExternalID: folder.externalID)
}
case .failure(let error):
self.logger.error("Remove feed error: \(error.localizedDescription)")
self.logger.error("Remove feed error: \(error.localizedDescription, privacy: .public)")
}
}
}
@@ -359,7 +359,7 @@ final class ReaderAPIAccountDelegate: AccountDelegate, Logging {
account.clearWebFeedMetadata(feed)
}
case .failure(let error):
self.logger.error("Remove feed error: \(error.localizedDescription)")
self.logger.error("Remove feed error: \(error.localizedDescription, privacy: .public)")
}
}
@@ -591,7 +591,7 @@ final class ReaderAPIAccountDelegate: AccountDelegate, Logging {
case .success:
break
case .failure(let error):
self.logger.error("Restore folder feed error: \(error.localizedDescription)")
self.logger.error("Restore folder feed error: \(error.localizedDescription, privacy: .public)")
}
}
@@ -885,7 +885,7 @@ private extension ReaderAPIAccountDelegate {
self.database.deleteSelectedForProcessing(articleIDGroup.map { $0 } )
group.leave()
case .failure(let error):
self.logger.error("Article status sync call failed: \(error.localizedDescription)")
self.logger.error("Article status sync call failed: \(error.localizedDescription, privacy: .public)")
self.database.resetSelectedForProcessing(articleIDGroup.map { $0 } )
group.leave()
}
@@ -1005,7 +1005,7 @@ private extension ReaderAPIAccountDelegate {
}
case .failure(let error):
self.logger.error("Refresh missing articles failed: \(error.localizedDescription)")
self.logger.error("Refresh missing articles failed: \(error.localizedDescription, privacy: .public)")
group.leave()
}
}
@@ -1119,7 +1119,7 @@ private extension ReaderAPIAccountDelegate {
case .success(let pendingArticleIDs):
process(pendingArticleIDs)
case .failure(let error):
self.logger.error("Sync Article Read Status failed: \(error.localizedDescription)")
self.logger.error("Sync Article Read Status failed: \(error.localizedDescription, privacy: .public)")
}
}
@@ -1168,7 +1168,7 @@ private extension ReaderAPIAccountDelegate {
case .success(let pendingArticleIDs):
process(pendingArticleIDs)
case .failure(let error):
self.logger.error("Sync Article Starred Status failed: \(error.localizedDescription)")
self.logger.error("Sync Article Starred Status failed: \(error.localizedDescription, privacy: .public)")
}
}

View File

@@ -50,7 +50,7 @@ final class WebFeedMetadataFile: Logging {
let data = try encoder.encode(feedMetadata)
try data.write(to: fileURL)
} catch let error {
logger.error("Save to disk failed: \(error.localizedDescription)")
logger.error("Save to disk failed: \(error.localizedDescription, privacy: .public)")
}
}

View File

@@ -60,8 +60,8 @@
"repositoryURL": "https://github.com/Ranchero-Software/RSCore.git",
"state": {
"branch": null,
"revision": "86714e838a762a02d1528039cafd1145b98ebae1",
"version": "1.0.12"
"revision": "3af73640bcf7bcfd1a462986d5a1c69b37822155",
"version": "1.0.13"
}
},
{