59 lines
2.1 KiB
Swift
59 lines
2.1 KiB
Swift
//
|
|
// Copyright 2021-2024 New Vector Ltd.
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
// Please see LICENSE in the repository root for full details.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
/// A logger for use in different application targets.
|
|
///
|
|
/// It can be configured at runtime with a suitable logger.
|
|
class UILog: LoggerProtocol {
|
|
static var _logger: LoggerProtocol.Type?
|
|
static func configure(logger: LoggerProtocol.Type) {
|
|
_logger = logger
|
|
}
|
|
|
|
static func verbose(_ message: @autoclosure () -> Any,
|
|
_ file: String = #file,
|
|
_ function: String = #function,
|
|
line: Int = #line,
|
|
context: Any? = nil) {
|
|
_logger?.verbose(message(), file, function, line: line, context: context)
|
|
}
|
|
|
|
static func debug(_ message: @autoclosure () -> Any,
|
|
_ file: String = #file,
|
|
_ function: String = #function,
|
|
line: Int = #line,
|
|
context: Any? = nil) {
|
|
_logger?.debug(message(), file, function, line: line, context: context)
|
|
}
|
|
|
|
static func info(_ message: @autoclosure () -> Any,
|
|
_ file: String = #file,
|
|
_ function: String = #function,
|
|
line: Int = #line,
|
|
context: Any? = nil) {
|
|
_logger?.info(message(), file, function, line: line, context: context)
|
|
}
|
|
|
|
static func warning(_ message: @autoclosure () -> Any,
|
|
_ file: String = #file,
|
|
_ function: String = #function,
|
|
line: Int = #line,
|
|
context: Any? = nil) {
|
|
_logger?.warning(message(), file, function, line: line, context: context)
|
|
}
|
|
|
|
static func error(_ message: @autoclosure () -> StaticString,
|
|
_ file: String = #file,
|
|
_ function: String = #function,
|
|
line: Int = #line,
|
|
context: Any? = nil) {
|
|
_logger?.error(message(), file, function, line: line, context: context)
|
|
}
|
|
}
|