WSLogger
一个 iOS 日志工具,可以扩展日志功能。
使用方法
例如,创建一个 Logger.swift
文件并添加对 WSLoggable
的实现
import WSLogger
extension WSLoggable {
func log(_ message: String, level: WSLogLevel = .debug, customAttributes: [String : Any]? = nil, className: String = "", fileName: NSString = #file, line: Int = #line, function: String = #function) {
// Log internally
let text = WSLogger.shared.log(message, level: level, customAttributes: customAttributes, className: String(describing: type(of: self)), fileName: fileName, line: line, function: function)
// Log remotely using `text`.
// Fabric, LogEntries, etc.
}
}
您可以通过添加 typealias
来避免在每个文件中导入 WSLogger
typealias Loggable = WSLoggable
typealias LoggerOptions = WSLoggerOptions
typealias LogLevel = WSLogLevel
然后在您想要使用协议 Loggable
的地方使用。函数 log
将可用
struct WSTableViewCell: Loggable {
func configure(viewModel: ViewModel) {
log("Bind model data with views")
...
}
}
可以通过 LoggerOptions.defaultLevel
属性更改日志级别。例如,如果 LoggerOptions.defaultLevel
是 debug
,则将忽略所有 verbose
条目。
您可以添加 LoggerOptions.defaultLevel = .none
来丢弃测试套件中的任何日志事件。也可以通过 Logger.shared.ignoreClass(WSTableViewCell)
忽略某些类。
您还可以在调试模式下执行这些操作。只需在控制台中写入 expr -- Logger.shared.ignoreClass(WSTableViewCell)
。
LogEntries 的示例
扩展日志机制:使用您可以按需扩展日志机制。例如,如果您想在线访问日志条目
import Foundation
import WSLogger
import lelib //LogEntries iOS lib
func loggerSetup() {
LoggerOptions.defaultLevel = .Debug
WSLogger.shared.traceFile = true
WSLogger.shared.traceMethod = true
// LogEntries
LELog.sharedInstance().token = "XXXX-XXX-XXX-XXXX"
}
extension WSLoggable {
func log(_ message: String, level: WSLogLevel = .debug, customAttributes: [String : Any]? = nil, className: String = "", fileName: NSString = #file, line: Int = #line, function: String = #function) {
// Log internally
let text = WSLogger.shared.log(message, level: level, customAttributes: customAttributes, className: String(describing: type(of: self)), fileName: fileName, line: line, function: function)
// Log remotely
LELog.sharedInstance().log(text as NSObject)
}
}
完整的示例在此处提供:链接。
安装
Carthage
要安装它,只需将以下行添加到您的 Cartfile
github "whitesmith/WSLogger"
然后运行 carthage update
。
请按照Carthage的README中的当前说明进行最新安装说明。
CocoaPods
要安装它,只需将以下行添加到您的 Podfile
pod 'WSLogger'
请确保您已选择使用框架
use_frameworks!
然后使用 CocoaPods 1.0 或更高版本运行 pod install
。
手动
下载所有源文件并将它们拖放到您的项目中。
要求
- iOS 8.0+
- Xcode 10(Swift 4.0)
贡献
最佳贡献方式是提交拉取请求。我们将尽力尽快回复您的补丁。如果您发现错误或有疑问,也可以提交新的GitHub问题。
致谢
查看Krzysztof Zabłocki发表的关于Swift中的日志记录的优秀主题。