Project Icon

SwiftyBeaver

Swift多功能日志框架 适用于开发和生产环境

SwiftyBeaver是一款支持Swift 3、4和5的日志框架,为开发和生产环境提供全面的日志解决方案。该框架特点包括彩色输出、灵活配置和轻量级设计,支持控制台、文件和云端多种输出方式。SwiftyBeaver尤其适合服务器端Swift开发,提供自定义日志格式、JSON输出和自定义日志目标创建功能。此外,框架还集成了Google Cloud,实现了自动化的服务器端Swift日志记录。

适用于 Swift 3、Swift 4 和 Swift 5多彩、灵活、轻量级日志记录工具。
非常适合开发和发布使用,支持控制台、文件和云端目标,可用于服务器端 Swift。

支持 Swift 2、3、4 和 5 CircleCI



开发期间:通过 OSLog API 或 Print 在 Xcode 控制台进行彩色日志记录

image

在 Xcode 15 中


// 使用 Apple 的高级 OSLog API:
let console = ConsoleDestination()
console.logPrintWay = .logger(subsystem: "Main", category: "UI")

// 或使用传统的 "print"(这是默认设置):
let console = ConsoleDestination()
console.logPrintWay = .print

在 Xcode 8 中

了解更多关于在 Xcode 8 控制台使用 Swift 3、4 和 5 进行彩色日志记录的信息。对于 Swift 2.3,请使用此 Gist不再需要修改 Xcode 8即可获得彩色输出。你甚至可以自定义日志级别的文字(比如用 ATTENTION 代替 ERROR),调整显示的数据量,以及选择是否使用💜或将其替换为其他表情符号😉


开发期间:彩色日志记录到文件

了解更多关于记录日志到文件的信息,这对 Terminal.app 爱好者或需要将日志存储在磁盘上的用户来说非常有用。


Google Cloud 和更多功能

你可以完全自定义日志格式,将其转换为 JSON,或创建自己的日志目标。例如,我们的 Google Cloud Destination 只是另一种自定义的日志格式,它为在 Google Cloud Platform 上托管的服务器端 Swift 添加了强大的自动日志记录功能。





安装

  • 对于 Swift 4 和 5,请安装最新版本的 SwiftyBeaver
  • 对于 Swift 3,请安装 SwiftyBeaver 1.8.4
  • 对于 Swift 2,请安装 SwiftyBeaver 0.7.0

Carthage

你可以使用 Carthage 安装 SwiftyBeaver,只需在 Cartfile 中添加:

Swift 4 和 5:

github "SwiftyBeaver/SwiftyBeaver"

Swift 3:

github "SwiftyBeaver/SwiftyBeaver" ~> 1.8.4

Swift 2:

github "SwiftyBeaver/SwiftyBeaver" ~> 0.7

Swift Package Manager

对于 Swift Package Manager,请在 Package.swift 文件中添加以下包。仅支持 Swift 4 和 5:

.package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", .upToNextMajor(from: "2.0.0")),

CocoaPods

要使用 CocoaPods,只需在 Podfile 中添加以下内容:

Swift 4 和 5:

pod 'SwiftyBeaver'

Swift 3:

target 'MyProject' do
  use_frameworks!

  # Pods for MyProject
  pod 'SwiftyBeaver', '~> 1.8.4'
end

Swift 2:

target 'MyProject' do
  use_frameworks!

  # Pods for MyProject
  pod 'SwiftyBeaver', '~> 0.7'
end

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    # 为 Xcode 8 和 Swift 2.3 配置 Pod 目标
    config.build_settings['SWIFT_VERSION'] = '2.3'
  end
end


使用方法

AppDelegate.swift 的顶部附近添加以下代码,以便在整个项目中使用 SwiftyBeaver。

import SwiftyBeaver
let log = SwiftyBeaver.self

AppDelegate:didFinishLaunchingWithOptions() 的开头添加 SwiftyBeaver 日志目标(控制台、文件等),可选择调整日志格式,然后你就可以全局使用以下日志级别调用:

// 添加日志目标。至少需要一个!
let console = ConsoleDestination()  // 记录到 Xcode 控制台
let file = FileDestination()  // 记录到默认的 swiftybeaver.log 文件

// 使用自定义格式,并将控制台输出设置为简短的时间、日志级别和消息
console.format = "$DHH:mm:ss$d $L $M"
// 或者使用此格式输出 JSON:console.format = "$J"
// 在 Xcode 15 中,将日志记录方法指定为 .logger 以在控制台中显示颜色、子系统和类别信息。(依赖于 OSLog API)
console.logPrintWay = .logger(subsystem: "Main", category: "UI")
// 如果你不想使用 OSLog API,可以改用 print。
// console.logPrintWay = .print 

// 将目标添加到 SwiftyBeaver
log.addDestination(console)
log.addDestination(file)

// 现在开始记录日志!
log.verbose("不太重要")  // 优先级 1,银色的 VERBOSE
log.debug("需要调试的内容")  // 优先级 2,绿色的 DEBUG
log.info("一条不错的信息")   // 优先级 3,蓝色的 INFO
log.warning("哦不,这可不太妙")  // 优先级 4,黄色的 WARNING
log.error("糟糕,发生了一个错误!")  // 优先级 5,红色的 ERROR

// 记录任何内容!
log.verbose(123)
log.info(-123.45678)
log.warning(Date())
log.error(["我", "喜欢", "日志!"])
log.error(["name": "海狸先生", "address": "海狸小屋7号"])

// 可选地为日志消息添加上下文
console.format = "$L: $M $X"
log.debug("年龄", context: 123)  // "DEBUG: 年龄 123"
log.info("我的数据", context: [1, "a", 2]) // "INFO: 我的数据 [1, \"a\", 2]"

另外,如果你使用 SwiftUI,可以考虑使用以下设置:

import SwiftyBeaver
let logger = SwiftyBeaver.self

@main
struct yourApp: App {

    init() {
        let console = ConsoleDestination()
        logger.addDestination(console)
        // 等等...
    }

    var body: some Scene {
        WindowGroup {
        }
    }
}

服务器端 Swift

我们❤️服务器端 Swift 4 & 5,SwiftyBeaver 开箱即用地支持它!亲自尝试并在 Ubuntu Docker 容器中运行 SwiftyBeaver。只需安装 Docker,然后在 macOS 或 Ubuntu 上进入你的项目文件夹并输入:

# 创建 docker 镜像,构建 SwiftyBeaver 并运行单元测试
docker run --rm -it -v $PWD:/app swiftybeaver /bin/bash -c "cd /app ; swift build ; swift test"

# 可选地登录容器以运行 Swift CLI 并做更多操作
docker run --rm -it --privileged=true -v $PWD:/app swiftybeaver

最棒的是:对于流行的服务器端 Swift Web 框架 Vapor,你可以使用**我们的 Vapor 日志提供程序**,它让服务器日志记录再次变得棒极了 🙌

文档

入门:

日志目标:

高级主题:

许可证

SwiftyBeaver 框架基于 MIT 许可证 发布。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号