Fixed a bug with return from background logs

Fixed a bug where logs sent before the logger finishes setting up after returning from the background weren't getting added to the log gile
pull/1032/head
Morgan Pretty 6 months ago
parent a1c3d53569
commit 79b98994fe

@ -68,8 +68,8 @@ public enum Log {
private static var pendingStartupLogs: Atomic<[LogInfo]> = Atomic([])
public static func setup(with logger: Logger) {
logger.retrievePendingStartupLogs.mutate {
$0 = {
logger.pendingLogsRetriever.mutate { callback in
callback = {
pendingStartupLogs.mutate { pendingStartupLogs in
let logs: [LogInfo] = pendingStartupLogs
pendingStartupLogs = []
@ -344,7 +344,7 @@ public class Logger {
private let systemLoggers: Atomic<[String: SystemLoggerType]> = Atomic([:])
fileprivate let fileLogger: DDFileLogger
fileprivate let isSuspended: Atomic<Bool> = Atomic(true)
fileprivate let retrievePendingStartupLogs: Atomic<(() -> [Log.LogInfo])?> = Atomic(nil)
fileprivate let pendingLogsRetriever: Atomic<(() -> [Log.LogInfo])?> = Atomic(nil)
public init(
primaryPrefix: String,
@ -483,11 +483,7 @@ public class Logger {
isSuspended = false
// Retrieve any logs that were added during
return retrievePendingStartupLogs.mutate { retriever in
let result: [Log.LogInfo] = (retriever?() ?? [])
retriever = nil
return result
}
return pendingLogsRetriever.mutate { retriever in (retriever?() ?? []) }
}
// If we had an error loading the extension logs then actually log it

Loading…
Cancel
Save