SimpleLogger:os.Loggerをラップした軽量Swiftライブラリ

SimpleLogger:os.Loggerをラップした軽量Swiftライブラリ

はじめに

iOSアプリ開発において、ログ出力はデバッグや保守の要です。Apple標準の統合ロギングシステムである os.Logger は非常に高機能でパフォーマンスも良いのですが、コードを書く際に「もう少し手軽に呼び出せたらいいのに」と感じることはないでしょうか?

そこで今回、os.Logger のパワーをそのままに、よりシンプルで直感的に扱える軽量なSwift用ラッパーライブラリ「SimpleLogger」を公開しました。 この記事では、自作ライブラリ SimpleLogger の特徴と使い方、そして実装時にこだわったポイントについて紹介します。

SimpleLogger とは?

Info

SimpleLogger は、Apple の os.Logger をラップした軽量な Swift ロギングユーティリティです。

既存の print デバッグではリリース後の追跡が難しく、かといって os.Logger をそのまま使うと初期化や呼び出しが少し冗長になりがちです。このライブラリは、その中間にある「手軽さ」と「実用性」を埋めるために設計しました。

  • リポジトリ: kixking/SimpleLogger
  • 言語: Swift 100%
  • ライセンス: MIT License
  • 最新バージョン: v1.1.1 (2026年1月27日リリース)

主な特徴とこだわり

1. とにかく手軽に使える(ゼロ設定でも動作)

ライブラリを導入してすぐに使い始められるよう、デフォルト設定を用意しています。 特に設定を行わなくても、サブシステム名にはアプリの Bundle Identifier が、カテゴリ名には "General" が自動的に適用されます。

もちろん、機能ごとにログを分けたい場合は、アプリ起動時などに以下のように1行記述するだけでカスタマイズ可能です。

// 任意のサブシステムとカテゴリを設定可能
Log.configure(subsystem: "com.example.MyApp", category: "Networking")

2. 直感的なメソッド名とレベル分け

ログレベルは、開発フローで頻出する4段階に絞っています。

  • info: アプリの動作状況などの一般情報
  • warning: 注意が必要な警告
  • error: 処理の失敗や例外
  • debug: 開発中のみ必要な詳細情報
Log.info("アプリの起動を開始しました")
Log.warning("低メモリ状態を検出しました")

3. Error型をそのまま渡せる

個人的に一番欲しかった機能がこれです。 API通信やファイル操作などで Error が発生した際、わざわざ error.localizedDescription などと変換しなくても、エラーオブジェクトをそのまま渡せるようにしました。

do {
    try loadData()
} catch {
    // Error型を直接引数に渡せます
    Log.error(error)
}

4. デバッグログの自動除外

開発中には大量に出力したいデバッグ情報も、リリース版ではノイズになったり、パフォーマンスに影響したりします。 Log.debug(...) メソッドは、#if DEBUG 環境下でのみ有効になるよう設計しているため、リリースビルドでは自動的に除外されます。

技術的な注意点:プライバシー保護

Warning

本ライブラリは os.Logger をベースにしているため、Appleの強力なプライバシー保護機能が適用されます。

セキュリティのため、動的な文字列(変数など)を含むログを出力しようとすると、コンソール上ではデフォルトで <private> とマスクされ、表示されない場合があります。これはユーザーの個人情報が意図せずログに残るのを防ぐための仕様です。

開発時の対処法
開発中に変数の値を確認したい場合は、以下のいずれかの方法でマスクを解除できます。

  • Xcodeなどのデバッガを接続した状態で実行する。
  • 「コンソール(Console.app)」の設定でプライベートデータの表示を有効にする。

導入方法

GitHubのリポジトリから Swift Package Manager (SPM) で簡単に追加できます。

https://github.com/kixking/SimpleLogger

Xcodeで File > Add Packages... を選択し、上記のURLを入力してパッケージを追加してください。

まとめ

SimpleLogger は、「多機能すぎず、でも必要な機能は揃っている」を目指して作成したライブラリです。

  • os.Logger の記述を短くしたい
  • エラーハンドリングのログを楽に書きたい
  • リリース時のデバッグログ削除を自動化したい

といったニーズがあれば、ぜひ使ってみてください。フィードバックやStarをいただけると開発の励みになります!

GitHubでリポジトリを見る

© 2026 kixking. All rights reserved.

コメント

このブログの人気の投稿

Blogger Sitemap登録エラー解決

【iOS】SwiftでCGAffineTransformから角度・ラジアン・度数・スケールを計算する方法

Ollama & Open WebUI: ローカルLLM構築