40 lines · 1.0 KB · Swift
RawDownload
import Logging struct CompositeLogHandler: LogHandler {    private var primary: any LogHandler    private var secondary: any LogHandler     init(primary: any LogHandler, secondary: any LogHandler) {        self.primary = primary        self.secondary = secondary    }     var metadata: Logger.Metadata {        get { self.primary.metadata }        set {            self.primary.metadata = newValue            self.secondary.metadata = newValue        }    }     var logLevel: Logger.Level {        get { self.primary.logLevel }        set {            self.primary.logLevel = newValue            self.secondary.logLevel = newValue        }    }     subscript(metadataKey metadataKey: String) -> Logger.Metadata.Value? {        get { self.primary[metadataKey: metadataKey] }        set {            self.primary[metadataKey: metadataKey] = newValue            self.secondary[metadataKey: metadataKey] = newValue        }    }     func log(event: LogEvent) {        self.primary.log(event: event)        self.secondary.log(event: event)    }}