日志 2.0

Log 2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2019年11月
SPM支持SPM

Damien Delba维护。



Log 2.0

  • 作者
  • Damien

Travis Status CocoaPods compatible Carthage compatible Platform

Log是一个功能强大的日志框架,提供内置的主题和格式化功能,以及一个定义自己API的良好API。

要充分利用Log,请安装XcodeColorsKZLinkedConsole

使用安装许可证

使用

基础知识

  • 使用Log就像使用print一样。
let Log = Logger()

Log.trace("Called!!!")
Log.debug("Who is self:", self)
Log.info(some, objects, here)
Log.warning(one, two, three, separator: " - ")
Log.error(error, terminator: "😱😱😱\n")

  • 通过设置enabledfalse来禁用Log
Log.enabled = false
  • 定义一个最小严重级别,只打印严重级别更高或相等的消息
Log.minLevel = .warning

严重级别有tracedebuginfowarningerror

自定义

  • 通过更改其主题和/或格式化程序来创建自己的Logger

建议的方法是扩展格式化程序主题

extension Formatters {
    static let detailed = Formatter("[%@] %@.%@:%@ %@: %@", [
        .date("yyyy-MM-dd HH:mm:ss.SSS"),
        .file(fullPath: false, fileExtension: false),
        .function,
        .line,
        .level,
        .message
    ])
}

extension Themes {
    static let tomorrowNight = Theme(
        trace:   "#C5C8C6",
        debug:   "#81A2BE",
        info:    "#B5BD68",
        warning: "#F0C674",
        error:   "#CC6666"
    )
}
let Log = Logger(formatter: .detailed, theme: .tomorrowNight)

查看内置的格式化程序主题以获取更多示例。

提示:Log.formatLog.colors对视觉调试日志很有用。

没有阻止您创建任意数量的日志记录器!

let Basic = Logger(formatter: .default, theme: nil)
let Short = Logger(
    formatter: Formatter("%@: %@", .level, .message),
    theme:     .tomorrowNightEighties,
    minLevel:  .info
)

  • 通过将主题设置为nil来关闭颜色
Log.theme = nil

高级

在您的formatter中包含一个自定义的Block组件以在每个日志消息中打印其结果

struct User {
    static func token() -> Int {
        return NSUserDefaults.standardUserDefaults.integerForKey("token")
    }
}

Log.formatter = Formatter("[%@] %@: %@", .block(User.token), .level, .message)

安装

Carthage

Carthage是一个去中心化的依赖管理工具,它自动将框架添加到您的Cocoa应用中。

您可以使用以下命令使用Homebrew安装Carthage:

$ brew update
$ brew install carthage

要使用Carthage将Log集成到您的Xcode项目中,请在您的Cartfile中指定它

github "delba/Log"

CocoaPods

CocoaPods是一个用于Cocoa项目的依赖管理工具。

您可以使用以下命令安装它:

$ gem install cocoapods

要使用CocoaPods将Log集成到您的Xcode项目中,请在您的Podfile中指定它

use_frameworks!

pod 'Log'

许可

版权所有 (c) 2015-2016 Damien (http://delba.io)

任何获得本软件及其相关文档副本(以下简称“软件”)的个人,未经限制,包括但不限于使用、复制、修改、合并、出版、分发、许可和/或出售软件副本的权利,并允许提供给软件的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。

本软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不仅限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者都不应对任何诉讼、损害或其他责任负任何责任,无论这些责任源于合同、侵权或其他原因,以及与软件或ソフトウェア的使用或其他处理有关的问题。