Skip to content

Commit 0571de9

Browse files
committed
Do not crash if macOS 11 available but Swift < 5.3
1 parent 0db1702 commit 0571de9

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

Sources/OSLogLogger.swift

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public struct OSLogLogger : LogHandler {
2323
#if swift(>=5.3)
2424
self.l = .logger(os.Logger(subsystem: subsystem, category: category))
2525
#else
26-
fatalError("Unreachable code: Swift if < 5.3, but macOS 11 or equivalent is available.")
26+
self.l = .oslog(.init(subsystem: subsystem, category: category))
2727
#endif
2828
} else {
2929
self.l = .oslog(.init(subsystem: subsystem, category: category))
@@ -44,7 +44,7 @@ public struct OSLogLogger : LogHandler {
4444
#if swift(>=5.3)
4545
self.l = .logger(os.Logger(oslog))
4646
#else
47-
fatalError("Unreachable code: Swift if < 5.3, but macOS 11 or equivalent is available.")
47+
self.l = .oslog(oslog)
4848
#endif
4949
} else {
5050
self.l = .oslog(oslog)
@@ -130,7 +130,12 @@ public struct OSLogLogger : LogHandler {
130130
}
131131
}
132132
#else
133-
fatalError("Unreachable code: Swift if < 5.3, but macOS 11 or equivalent is available.")
133+
switch (effectiveFlatMetadata.public.isEmpty, effectiveFlatMetadata.private.isEmpty) {
134+
case ( true, true): os_log("%{public}@", log: l.oslog, type: Self.logLevelToLogType(level), "\(message)")
135+
case (false, true): os_log("%{public}@\n ▷ %{public}@", log: l.oslog, type: Self.logLevelToLogType(level), "\(message)", effectiveFlatMetadata.public .joined(separator: "\n"))
136+
case ( true, false): os_log("%{public}@\n ▷ %{private}@", log: l.oslog, type: Self.logLevelToLogType(level), "\(message)", effectiveFlatMetadata.private.joined(separator: "\n"))
137+
case (false, false): os_log("%{public}@\n ▷ %{public}@\n ▷ %{private}@", log: l.oslog, type: Self.logLevelToLogType(level), "\(message)", effectiveFlatMetadata.public .joined(separator: "\n"), effectiveFlatMetadata.private.joined(separator: "\n"))
138+
}
134139
#endif
135140

136141
} else {

0 commit comments

Comments
 (0)