GDLog
Swift的另一个日志记录器。
该工具使用Apple的统一日志OSLog
- 以及NSLog
作为后备,因此本质上是一个外观。我认为这使OSLog
在Swift中更容易使用,因为您可以进行字符串插值。
由于已经有一个名为GDLogger的Cocoapod,因此我将这个改名为GDLog。
需求
- iOS 10.0+ / Mac OS X 10.12+ / tvOS 10.0+ / watchOS 3.0+
- Xcode 9.0+
安装
CocoaPods
CocoaPods是Cocoa项目的依赖项管理器。您可以使用以下命令安装它
$ gem install cocoapods
要使用CocoaPods将GDLogger集成到您的Xcode项目中,请在您的Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
pod 'GDLogger', '~> 0.0.1'
然后,运行以下命令
$ pod install
Carthage
Carthage是一个去中心化的依赖管理器,可以自动将框架添加到您的Cocoa应用程序中。
您可以使用以下命令通过Homebrew安装Carthage:
$ brew update
$ brew install carthage
要使用Carthage将GDLogger集成到您的Xcode项目中,请在您的Cartfile
中指定它。
github "GDLogger/GDLogger" ~> 0.0.1
Swift Package Manager
要作为Swift Package Manager包使用GDLogger,只需在您的Package.swift文件中添加以下内容。
import PackageDescription
let package = Package(
name: "HelloGDLogger",
dependencies: [
.Package(url: "https://github.com/genedelisa/GDLogger.git", "0.0.1")
]
)
手动整合
如果您不想使用上述任何依赖管理器,您可以手动将GDLogger集成到项目中。
Git子模块
- 打开终端,在您的根项目目录下使用
cd
命令。
$ git init
- 使用以下命令将GDLogger添加为git submodule:
$ git submodule add https://github.com/genedelisa/GDLogger.git
$ git submodule update --init --recursive
- 打开新的
GDLogger
文件夹,并将GDLogger.xcodeproj
拖拽到您的应用Xcode项目的Project Navigator中。
它应该会出现在蓝色应用项目图标下方。它是在所有其他Xcode组之上还是之下并不重要。
- 在Project Navigator中选择
GDLogger.xcodeproj
,并验证其部署目标与应用程序目标的匹配。 - 然后,选择Xcode中的应用程序项目(蓝色项目图标),导航到目标配置窗口,在侧边栏的"Targets"标题下选择应用程序目标。
- 在该窗口顶部的标签栏中,打开"General"面板。
- 在"Embedded Binaries"部分点击"+"按钮。
- 您将看到两个不同的
GDLogger.xcodeproj
文件夹,每个文件夹中都有一个GDLogger.framework
(位于Products文件夹中)。
您可以选择哪个Products文件夹并不重要。
-
选择
GDLogger.framework
。 -
这就是全部了!
GDLogger.framework
会自动添加为目标依赖项,在复制文件构建阶段被链接为框架和嵌入框架,这就是您在模拟器和设备上构建所需的所有内容。
嵌入的二进制文件
- 从https://github.com/genedelisa/GDLogger/releases 下载最新版本
- 然后,选择Xcode中的应用程序项目(蓝色项目图标),导航到目标配置窗口,在侧边栏的"Targets"标题下选择应用程序目标。
- 在该窗口顶部的标签栏中,打开"General"面板。
- 在"Embedded Binaries"部分点击"+"按钮。
- 添加下载的
GDLogger.framework
。 - 这就是全部了!
其他日志记录选项。
用法
为子系统设置日志级别。
$ sudo log config --mode "level:debug" --subsystem com.your_company.your_subsystem_name
例如,从终端(或iterm)设置子系统的调试级别。然后您可以流式传输输出。
$ sudo log config --mode "level:debug" --subsystem com.rockhoppertech.SlowItDown
$ log stream --predicate 'subsystem == "com.rockhoppertech.SlowItDown"' --info --debug
检查当前日志级别。
$ sudo log config --status
使用系统控制台(以及/或 Xcode 的控制台)来读取日志消息。
您可以在控制台应用程序中按子系统过滤。
示例控制台输出
消息表情可以根据级别进行重定义。
var log = GDLogger()
log.debugPrefix = "♫ "
log.debugPostfix = " ♫"
以下是一些示例输出。
2017-12-18 15:54:03.611598-0500 SlowItDown[31758:2620634] [general] 😺😺😺 authorized ☞ checkMediaLibraryPermission() 🗄MediaLibraryController.swift➸121 😺😺😺
创建日志记录器的其他选项。
var log2 = GDLogger(category: "my category")
log2.debug("logging to my category string")
public enum MyCategories: String {
case mycat
}
var log3 = GDLogger(category: MyCategories.mycat.rawValue)
log3.debug("logging to my category enum")
var log4 = GDLogger(.controller, category: .general)
log4.debug("logging to controler subsystem using general category")
许可协议
GDLogger 使用 MIT 许可协议发布。有关详细信息,请参阅 LICENSE