ZcashLightClientKit/Sources/ZcashLightClientKit/Utils/LoggingProxy.swift

57 lines
2.2 KiB
Swift

//
// LoggingProxy.swift
// ZcashLightClientKit
//
// Created by Francisco Gindre on 3/6/20.
//
import Foundation
/**
Represents what's expected from a logging entity
*/
public protocol Logger {
func debug(_ message: String, file: StaticString, function: StaticString, line: Int)
func info(_ message: String, file: StaticString, function: StaticString, line: Int)
func event(_ message: String, file: StaticString, function: StaticString, line: Int)
func warn(_ message: String, file: StaticString, function: StaticString, line: Int)
func error(_ message: String, file: StaticString, function: StaticString, line: Int)
}
extension Logger {
func debug(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
debug(message, file: file, function: function, line: line)
}
func info(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
info(message, file: file, function: function, line: line)
}
func event(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
event(message, file: file, function: function, line: line)
}
func warn(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
warn(message, file: file, function: function, line: line)
}
func error(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
error(message, file: file, function: function, line: line)
}
}
/**
A concrete logger implementation that logs nothing at all
*/
struct NullLogger: Logger {
func debug(_ message: String, file: StaticString, function: StaticString, line: Int) {}
func info(_ message: String, file: StaticString, function: StaticString, line: Int) {}
func event(_ message: String, file: StaticString, function: StaticString, line: Int) {}
func warn(_ message: String, file: StaticString, function: StaticString, line: Int) {}
func error(_ message: String, file: StaticString, function: StaticString, line: Int) {}
}