@@ -20,7 +20,11 @@ public struct OSLogLogger : LogHandler {
2020 public init ( subsystem: String , category: String , metadataProvider: Logging . Logger . MetadataProvider ? = LoggingSystem . metadataProvider) {
2121 self . metadataProvider = metadataProvider
2222 if #available( macOS 11 , tvOS 14 , iOS 14 , watchOS 7 , * ) {
23+ #if swift(>=5.3)
2324 self . l = . logger( os. Logger ( subsystem: subsystem, category: category) )
25+ #else
26+ fatalError ( " Unreachable code: Swift if < 5.3, but macOS 11 or equivalent is available. " )
27+ #endif
2428 } else {
2529 self . l = . oslog( . init( subsystem: subsystem, category: category) )
2630 }
@@ -37,17 +41,23 @@ public struct OSLogLogger : LogHandler {
3741 public init ( oslog: OSLog , metadataProvider: Logging . Logger . MetadataProvider ? = LoggingSystem . metadataProvider) {
3842 self . metadataProvider = metadataProvider
3943 if #available( macOS 11 , tvOS 14 , iOS 14 , watchOS 7 , * ) {
44+ #if swift(>=5.3)
4045 self . l = . logger( os. Logger ( oslog) )
46+ #else
47+ fatalError ( " Unreachable code: Swift if < 5.3, but macOS 11 or equivalent is available. " )
48+ #endif
4149 } else {
4250 self . l = . oslog( oslog)
4351 }
4452 }
4553
54+ #if swift(>=5.3)
4655 @available ( macOS 11 , tvOS 14 , iOS 14 , watchOS 7 , * )
4756 public init ( logger: os . Logger , metadataProvider: Logging . Logger . MetadataProvider ? = LoggingSystem . metadataProvider) {
4857 self . metadataProvider = metadataProvider
4958 self . l = . logger( logger)
5059 }
60+ #endif
5161
5262 public subscript( metadataKey metadataKey: String ) -> Logging . Logger . Metadata . Value ? {
5363 get { metadata [ metadataKey] }
@@ -65,6 +75,7 @@ public struct OSLogLogger : LogHandler {
6575 else { effectiveFlatMetadata = flatMetadataCache}
6676
6777 if #available( macOS 11 , tvOS 14 , iOS 14 , watchOS 7 , * ) {
78+ #if swift(>=5.3)
6879 /* If we could use os.Logger directly.
6980 * Note these calls probably do more or less what the os_log call above does… */
7081 switch level {
@@ -118,7 +129,10 @@ public struct OSLogLogger : LogHandler {
118129 case ( false , false ) : l. logger. critical ( " \( message, privacy: . public) \n ▷ \( effectiveFlatMetadata. public . joined ( separator: " \n ▷ " ) , privacy: . public) \n ▷ \( effectiveFlatMetadata. private. joined ( separator: " \n ▷ " ) , privacy: . private) " )
119130 }
120131 }
121-
132+ #else
133+ fatalError ( " Unreachable code: Swift if < 5.3, but macOS 11 or equivalent is available. " )
134+ #endif
135+
122136 } else {
123137 switch ( effectiveFlatMetadata. public. isEmpty, effectiveFlatMetadata. private. isEmpty) {
124138 case ( true , true ) : os_log ( " %{public}@ " , log: l. oslog, type: Self . logLevelToLogType ( level) , " \( message) " )
0 commit comments