From 93e9cb65964aacc6dfe9a8fa1293f8956f8fe3d5 Mon Sep 17 00:00:00 2001 From: Ian Partridge Date: Wed, 1 May 2019 09:41:18 +0100 Subject: [PATCH] fix: don't call openlog() `openlog()` may retain the `ident` internally, so we can't pass it the label's raw buffer. Also, it's not necessary to call `openlog()` multiple times which would happen when it's called from the `LogHandler`'s initialization. Instead, pass the logger label in the log message. --- Sources/LoggingSyslog/SyslogLogHandler.swift | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Sources/LoggingSyslog/SyslogLogHandler.swift b/Sources/LoggingSyslog/SyslogLogHandler.swift index 47ea204..848309f 100644 --- a/Sources/LoggingSyslog/SyslogLogHandler.swift +++ b/Sources/LoggingSyslog/SyslogLogHandler.swift @@ -8,9 +8,6 @@ public struct SyslogLogHandler: LogHandler { /// Create a `SyslogLogHandler`. public init(label: String) { self.label = label - label.withCString { - openlog($0, LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL0) - } } public let label: String @@ -35,7 +32,7 @@ public struct SyslogLogHandler: LogHandler { ? self.prettyMetadata : self.prettify(self.metadata.merging(metadata!, uniquingKeysWith: { _, new in new })) - let message = "\(prettyMetadata.map { " \($0)" } ?? "") \(message)" + let message = "\(self.label): \(prettyMetadata.map { " \($0)" } ?? "") \(message)" message.withCString { syslog_helper(level.asSyslogPriority(), $0) }