CommandLineToolkit
29 строк · 723.0 Байт
1/*
2* Copyright (c) Avito Tech LLC
3*/
4
5import CLTLoggingModels
6import Foundation
7
8public final class LimitingLoggerHandler: LoggerHandler {
9private let maximumVerbosity: Verbosity
10private let target: LoggerHandler
11
12public init(
13maximumVerbosity: Verbosity,
14target: LoggerHandler
15) {
16self.maximumVerbosity = maximumVerbosity
17self.target = target
18}
19
20public func handle(logEntry: LogEntry) {
21guard maximumVerbosity.allowsLoggingWthVerbosity(logEntry.verbosity) else { return }
22
23target.handle(logEntry: logEntry)
24}
25
26public func tearDownLogging(timeout: TimeInterval) {
27target.tearDownLogging(timeout: timeout)
28}
29}
30