Logdog

0.3.0

OSログをいい感じに表示するビューと、OSログを表示するための薄いラッパーを提供するパッケージです。
uhooi/Logdog

What's New

0.3.0

2024-04-20T08:18:26Z

What's Changed

Full Changelog: 0.2.0...0.3.0

Logdog 🐶

CI CI examples Release Swift Compatibility Platform Compatibility License X

OSログをいい感じに表示するビューと、OSログを表示するための薄いラッパーを提供するパッケージです。

目次

システム要件

  • iOS: 16.0+

インストール

Swift Package Manager

Package

本パッケージを Package.swift に追加し、ターゲットの依存関係に含めます。

let package = Package(
    dependencies: [
        .package(url: "https://github.com/uhooi/Logdog", from: "0.2.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()
        }
    }
}

LogdogUI ライブラリのために作ったものを公開しているだけなので、必要最低限の機能しか提供していません。

貢献

貢献をお待ちしています ☺️

スタッツ

スタッツ

Description

  • Swift Tools 5.10.0
View More Packages from this Author

Dependencies

Last updated: Wed May 08 2024 07:37:24 GMT-0900 (Hawaii-Aleutian Daylight Time)