element-ios/RiotSwiftUI/Modules/Common/Logging/UILog.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)
}
}