mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Change visibility of system error messages included in logs so that they are useful in production
This commit is contained in:
@@ -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)")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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)")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user