Skip to content

Commit 0104558

Browse files
committed
Gate the use of os.Logger behind a Swift version check
1 parent 43e28bc commit 0104558

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

Sources/DummySendable.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,7 @@ public protocol GHALogger_Sendable : Sendable {}
88
public protocol GHALogger_Sendable {}
99
#endif
1010

11+
#if swift(>=5.3)
1112
@available(macOS 11.0, tvOS 14.0, iOS 14.0, watchOS 7.0, *)
1213
extension Logger : GHALogger_Sendable {}
14+
#endif

Sources/OSLogLogger.swift

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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)")

Sources/UnderlyingLogger.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,14 @@ internal enum UnderlyingLogger : GHALogger_Sendable {
2121
}
2222
}
2323

24+
#if swift(>=5.3)
2425
@available(macOS 11, tvOS 14, iOS 14, watchOS 7, *)
2526
var logger: Logger! {
2627
switch self {
2728
case .oslog: return nil
2829
case .logger(let r): return (r as! Logger)
2930
}
3031
}
32+
#endif
3133

3234
}

0 commit comments

Comments
 (0)