WSLogger 4.0.0

WSLogger 4.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2023年10月
SPM支持 SPM

Ricardo Pereira 维护。



WSLogger 4.0.0

WSLogger

Carthage Compatible CocoaPods Compatible Swift 5.0 Platforms iOS Build Status License MIT

一个 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.defaultLeveldebug,则将忽略所有 verbose 条目。

您可以添加 LoggerOptions.defaultLevel = .none 来丢弃测试套件中的任何日志事件。也可以通过 Logger.shared.ignoreClass(WSTableViewCell) 忽略某些类。

您还可以在调试模式下执行这些操作。只需在控制台中写入 expr -- Logger.shared.ignoreClass(WSTableViewCell)

扩展日志机制:使用 LogEntries 的示例

您可以按需扩展日志机制。例如,如果您想在线访问日志条目

LogEntries dashboard

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问题:octocat:

致谢

Whitesmith

查看Krzysztof Zabłocki发表的关于Swift中的日志记录的优秀主题。