CommandLineToolkit

Форк
0
61 строка · 1.6 Кб
1
/*
2
 * Copyright (c) Avito Tech LLC
3
 */
4

5
import Foundation
6

7
public enum Verbosity: UInt, Codable, Comparable {
8
    /// Detailed debug info suitable for tracing program execution
9
    case trace = 999
10
    /// Debug logs
11
    case debug = 500
12
    /// User visible logs
13
    case info = 400
14
    /// Warnings important for the user
15
    case warning = 300
16
    /// Errors important for the user
17
    case error = 200
18
    /// Always print this log message
19
    case always = 0
20
    
21
    public static func < (left: Verbosity, right: Verbosity) -> Bool {
22
        return left.rawValue < right.rawValue
23
    }
24
    
25
    public func allowsLoggingWthVerbosity(_ otherVerbosity: Verbosity) -> Bool {
26
        return otherVerbosity <= self
27
    }
28
    
29
    public init?(rawValue: UInt) {
30
        if rawValue >= Verbosity.trace.rawValue {
31
            self = .trace
32
        } else if rawValue >= Verbosity.debug.rawValue {
33
            self = .debug
34
        } else if rawValue >= Verbosity.info.rawValue {
35
            self = .info
36
        } else if rawValue >= Verbosity.warning.rawValue {
37
            self = .warning
38
        } else if rawValue >= Verbosity.error.rawValue {
39
            self = .error
40
        } else {
41
            self = .always
42
        }
43
    }
44
    
45
    public var stringCode: String {
46
        switch self {
47
        case .trace:
48
            return "TRACE"
49
        case .debug:
50
            return "DEBUG"
51
        case .info:
52
            return "INFO"
53
        case .warning:
54
            return "WARNING"
55
        case .error:
56
            return "ERROR"
57
        case .always:
58
            return "ALWAYS"
59
        }
60
    }
61
}
62

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.