Logdog 🐶

CI CI examples Release Swift Compatibility Platform Compatibility License X

Logdog 🐶 是一个软件包,提供用于美观显示 OS 日志的视图,以及用于显示 OS 日志的轻量级包装器。

目录

系统要求

安装

Swift Package Manager

Package

将本软件包添加到 Package.swift,并将其包含在目标的依赖项中。

let package = Package(
    dependencies: [
        .package(url: "https://github.com/uhooi/Logdog", from: "0.3.0"),
    ],
    targets: [
        .target(
            name: "<your-target-name>",
            dependencies: [
                .product(name: "LogdogUI", package: "Logdog"), // ビューを使用する場合(オススメ)
                .product(name: "Logdog", package: "Logdog"), // ビューを自作する場合
            ]),
    ]
)

Xcode

本软件包可以在 Xcode 上添加。

详情请参阅文档

使用方法

OS 日志的输出

本软件包的存在是为了显示 OS 日志。
因此,首先输出 OS 日志。

准备像下面这样的包装器会很方便。

import Foundation
import os

enum Logger {
    nonisolated(unsafe) static let yourCategoryName: os.Logger = .init(
        subsystem: Bundle.main.bundleIdentifier!,
        category: "<your-category-name>"
    )
}

之后只需从 Logger.yourCategoryName 调用 os.Logger 的方法即可。

let message = "Foo"
Logger.yourCategoryName.debug("\(message, privacy: .public)")

详情请参阅以下文章。
os.Logger 的说明和使用方法 (Swift) #Swift - Qiita

OS 日志的显示

从这里开始使用本软件包。

使用视图的情况(推荐)

使用 LogdogUI 库,可以轻松添加显示 OS 日志的视图。

import SwiftUI
import LogdogUI

struct ContentView: View {
    var body: some View {
        NavigationStack {
            LogdogScreen()
                .navigationTitle(String(localized: "Log"))
                .navigationBarTitleDisplayMode(.inline)
        }
    }
}

只需调用 LogdogScreen() 即可。非常简单。

自定义视图的情况

使用 Logdog 库,可以轻松获取格式化后的 OS 日志数据。

import Logdog

struct LogdogScreen: View {
    @State private var entries: [LogEntry] = []
    private let logStore = LogStore()

    var body: some View {
        List {
            ForEach(entries) { entry in
                Text(entry.message)
            }
        }
        .task {
            entries = try? await logStore.entries()
        }
    }
}

因为 Logdog 库只是为了 LogdogUI 库而制作并公开的,因此仅提供最基本的功能。

贡献

期待您的贡献☺️

统计

スタッツ