mirror of
https://github.com/wnagrodzki/SwiftLogger.git
synced 2025-04-07 04:51:52 +02:00
Redesign LogLevel to conform to syslog severity levels
This commit is contained in:
parent
e6f5138523
commit
41462ded26
1 changed files with 30 additions and 17 deletions
|
@ -58,33 +58,46 @@ public protocol Logger {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Log level controls the conditions under which a message should be logged.
|
/// Log level controls the conditions under which a message should be logged.
|
||||||
|
/// - note: [RFC5424](https://www.rfc-editor.org/info/rfc5424)
|
||||||
public enum LogLevel: Int {
|
public enum LogLevel: Int {
|
||||||
|
|
||||||
/// Use this level to capture information about things that might result a failure.
|
/// System is unusable.
|
||||||
case `default`
|
case emergency = 0
|
||||||
|
|
||||||
/// Use this level to capture information that may be helpful, but isn’t essential, for troubleshooting errors.
|
/// Action must be taken immediately.
|
||||||
case info
|
case alert = 1
|
||||||
|
|
||||||
/// Use this level to capture information that may be useful during development or while troubleshooting a specific problem.
|
/// Critical conditions.
|
||||||
case debug
|
case critical = 2
|
||||||
|
|
||||||
/// Use this log level to capture process-level information to report errors in the process.
|
/// Error conditions.
|
||||||
case error
|
case error = 3
|
||||||
|
|
||||||
/// Use this level to capture system-level or multi-process information to report system errors.
|
/// Warning conditions.
|
||||||
case fault
|
case warning = 4
|
||||||
|
|
||||||
|
/// Normal but significant conditions.
|
||||||
|
case notice = 5
|
||||||
|
|
||||||
|
/// Informational messages.
|
||||||
|
case informational = 6
|
||||||
|
|
||||||
|
/// Debug-level messages.
|
||||||
|
case debug = 7
|
||||||
}
|
}
|
||||||
|
|
||||||
extension LogLevel: LogStringConvertible {
|
extension LogLevel: LogStringConvertible {
|
||||||
|
|
||||||
public var logDescription: String {
|
public var logDescription: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .default: return "Default"
|
case .emergency: return "emerg"
|
||||||
case .info: return "Info"
|
case .alert: return "alert"
|
||||||
case .debug: return "Debug"
|
case .critical: return "crit"
|
||||||
case .error: return "Error"
|
case .error: return "err"
|
||||||
case .fault: return "Fault"
|
case .warning: return "warning"
|
||||||
|
case .notice: return "notice"
|
||||||
|
case .informational: return "info"
|
||||||
|
case .debug: return "debug"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,11 +108,11 @@ extension Logger {
|
||||||
///
|
///
|
||||||
/// - Parameters:
|
/// - Parameters:
|
||||||
/// - object: The object to be logged.
|
/// - object: The object to be logged.
|
||||||
/// - level: The log level. If unspecified, the `default` log level is used.
|
/// - level: The log level.
|
||||||
/// - file: **Do not provide a custom value.** The path to the file log method is called from.
|
/// - file: **Do not provide a custom value.** The path to the file log method is called from.
|
||||||
/// - line: **Do not provide a custom value.** The line number log method is called at.
|
/// - line: **Do not provide a custom value.** The line number log method is called at.
|
||||||
/// - function: **Do not provide a custom value.** The name of the declaration log method is called within.
|
/// - function: **Do not provide a custom value.** The name of the declaration log method is called within.
|
||||||
public func log(_ object: Any, level: LogLevel = .default, file: String = #file, line: Int = #line, function: String = #function) {
|
public func log(_ object: Any, level: LogLevel, file: String = #file, line: Int = #line, function: String = #function) {
|
||||||
let now = Date()
|
let now = Date()
|
||||||
let location = description(for: file, line: line, function: function)
|
let location = description(for: file, line: line, function: function)
|
||||||
let objectDescription = description(for: object)
|
let objectDescription = description(for: object)
|
||||||
|
|
Loading…
Add table
Reference in a new issue