Skip to content

Commit

Permalink
add a make-log-handler function to DiscordLogHandler
Browse files Browse the repository at this point in the history
  • Loading branch information
MahdiBM committed Feb 27, 2023
1 parent 04cc6d4 commit f512e04
Showing 1 changed file with 29 additions and 12 deletions.
41 changes: 29 additions & 12 deletions Sources/DiscordLogger/DiscordLogHandler.swift
Expand Up @@ -43,21 +43,38 @@ public struct DiscordLogHandler: LogHandler {
makeMainLogHandler: (String, Logger.MetadataProvider?) -> LogHandler
) -> Logger {
Logger(label: label) { label in
var otherHandler = makeMainLogHandler(label, metadataProvider)
otherHandler.logLevel = level
let handler = MultiplexLogHandler([
otherHandler,
DiscordLogHandler(
label: label,
address: address,
level: level,
metadataProvider: metadataProvider
)
])
return handler
multiplexLogHandler(
label: label,
address: address,
level: level,
metadataProvider: metadataProvider,
makeMainLogHandler: makeMainLogHandler
)
}
}

/// Make a log handler that logs to both the a main place like stdout and also to Discord.
public static func multiplexLogHandler(
label: String,
address: WebhookAddress,
level: Logger.Level = .info,
metadataProvider: Logger.MetadataProvider? = nil,
makeMainLogHandler: (String, Logger.MetadataProvider?) -> LogHandler
) -> MultiplexLogHandler {
var otherHandler = makeMainLogHandler(label, metadataProvider)
otherHandler.logLevel = level
let handler = MultiplexLogHandler([
otherHandler,
DiscordLogHandler(
label: label,
address: address,
level: level,
metadataProvider: metadataProvider
)
])
return handler
}

public subscript(metadataKey key: String) -> Logger.Metadata.Value? {
get { return metadata[key] }
set(newValue) { self.metadata[key] = newValue }
Expand Down

0 comments on commit f512e04

Please sign in to comment.