CocoAlumberJackは、MacOS、iOS、TVOS、WatchOS、VisionOS向けの高速でシンプルでありながら強力で柔軟なロギングフレームワークです。
まず、Cocoapods、Carthage、Swift Package Manager、または手動でCocoAlumberJackをインストールします。次に、iOS 10以降にDDOSLogger使用するか、以前のバージョンにはDDTTYLoggerとDDASLLogger使用して、メッセージのログを開始します。
platform :ios , '11.0'
target 'SampleTarget' do
use_frameworks!
pod 'CocoaLumberjack/Swift'
end注: Swift 、すべてのOBJ-CコードとSwiftのコードを含むサブスペックであるため、これで十分です。 LumberjackでSwiftを使用する方法の詳細については、この会話を参照してください。
Objective-Cには、次のものを使用してください。
platform :ios , '11.0'
target 'SampleTarget' do
pod 'CocoaLumberjack'
endCarthageは、SwiftおよびObjective-Cの軽量依存関係マネージャーです。ココアットチューチモジュールを活用し、ココアポッドよりも侵襲性が低くなります。
カルタゴと一緒にインストールするには、カルタゴの指示に従ってください
カートファイル
github "CocoaLumberjack/CocoaLumberjack"
CocoAlumberJack 3.6.0の時点では、Swift Package Managerを統合方法として使用できます。 Swift Package Managerを統合方法として使用する場合は、Xcodeを使用してパッケージ依存関係を追加するか、次の依存関係をパッケージに追加します。Swift:
. package ( url : " https://github.com/CocoaLumberjack/CocoaLumberjack.git " , from : " 3.8.0 " ) , SPMがCocoaLumberjackSwiftがCocoaLumberjackに依存することを検出できない場合があるため、両方の製品、 CocoaLumberjack 、 CocoaLumberjackSwiftターゲットに追加する必要がある場合があることに注意してください。
ココアルバージャックを手動でインストールする場合は、詳細については手動インストールガイドをお読みください。
通常、 import CocoaLumberjackSwiftできます。 Cocoapodsを使用してCocoAlumberJackをインストールした場合、代わりにimport CocoaLumberjack使用する必要があります。
DDLog . add ( DDOSLogger . sharedInstance ) // Uses os_log
let fileLogger : DDFileLogger = DDFileLogger ( ) // File Logger
fileLogger . rollingFrequency = 60 * 60 * 24 // 24 hours
fileLogger . logFileManager . maximumNumberOfLogFiles = 7
DDLog . add ( fileLogger )
...
DDLogVerbose ( " Verbose " )
DDLogDebug ( " Debug " )
DDLogInfo ( " Info " )
DDLogWarn ( " Warn " )
DDLogError ( " Error " )Lumberjackをフレームワークとして使用している場合は、 @import CocoaLumberjack; 。それ以外の場合、 #import <CocoaLumberjack/CocoaLumberjack.h>
[DDLog addLogger: [DDOSLogger sharedInstance ]]; // Uses os_log
DDFileLogger *fileLogger = [[DDFileLogger alloc ] init ]; // File Logger
fileLogger.rollingFrequency = 60 * 60 * 24 ; // 24 hour rolling
fileLogger.logFileManager.maximumNumberOfLogFiles = 7 ;
[DDLog addLogger: fileLogger];
...
DDLogVerbose ( @" Verbose " );
DDLogDebug ( @" Debug " );
DDLogInfo ( @" Info " );
DDLogWarn ( @" Warn " );
DDLogError ( @" Error " );Lumberjackを既存のObjective-Cに統合する場合Multiple methods named 'tag' found with mismatched result, parameter type or attributesに実行することができます。
#define DD_LEGACY_MESSAGE_TAG 0追加する前に、cocoAlumberJackをインポートするか、 #define DD_LEGACY_MESSAGE_TAG 0または-DDD_LEGACY_MESSAGE_TAG=0 xcodeプロジェクトの他のcフラグ/ other_cflagsに追加します。
また、CocoAlumberJackは、Swift-Logのバックエンド実装も搭載されています。 CocoAlumberJackをSPMターゲットへの依存関係として追加するだけで(上記を参照)、ターゲットへの依存関係としてCocoaLumberjackSwiftLogBackend製品を追加します。
その後、 DDLogHandler swift-logのバックエンドとして使用できます。これにより、すべてのメッセージがCocoAlumberjackのDDLogに転送されます。 DDLogを介して必要なロガーとログフォーマッタを構成しますが、swift-logのLoggerを使用してログメッセージを作成することが行われます。
独自のログフォーマッタでは、 DDLogMessageのswiftLogInfoプロパティを使用して、swift-logを介して記録されたメッセージの詳細を取得できます。
cocoalumberjackでSwift-logを使用するには、次のコードスニペットを見て、開始方法を確認してください。
import CocoaLumberjack
import CocoaLumberjackSwiftLogBackend
import Logging
// In your application's entry point (e.g. AppDelegate):
DDLog . add ( DDOSLogger . sharedInstance ) // Configure loggers
LoggingSystem . bootstrapWithCocoaLumberjack ( ) // Use CocoaLumberjack as swift-log backendLog4Jなどの他の一般的なロギングフレームワークと概念が似ていますが、Objective-C専用に設計されており、マルチスレッド、Grand Central Dispatch(利用可能な場合)、ロックレス原子操作、Objective-C Runtimeの動的な性質などの機能を活用しています。
ほとんどの場合、NSLOGよりも桁違いに桁違いになります。
アプリケーションの起動時にLumberJackを構成するために、単一のコードの1行ほどかかりません。次に、NSLOGステートメントをDDLOGステートメントに置き換えるだけで、それがそれについてです。 (そして、DDLOGマクロはNSLOGとまったく同じ形式と構文を持っているので、非常に簡単です。)
1つのログステートメントを複数のロガーに送信できます。つまり、ファイルとコンソールに同時にログにログインできます。もっと欲しい?独自のロガーを作成し(簡単です)、ネットワーク上にログステートメントを送信します。または、データベースまたは分散ファイルシステムに。空は限界です。
必要なログを構成します。ファイルごとのログレベルを変更します(デバッグに最適)。ロガーごとのログレベルを変更します(冗長コンソールですが、簡潔なログファイル)。 Xcode構成ごとのログレベルを変更します(詳細なデバッグですが、簡潔なリリース)。ログステートメントをリリースビルドからコンパイルしてください。アプリケーションのログレベルの数をカスタマイズします。独自の細粒ロギングを追加します。ランタイム中にログレベルを動的に変更します。ログファイルをロールする方法を選択してください。ログファイルを中央サーバーにアップロードします。ディスクスペースを保存するためにアーカイブされたログファイルを圧縮します...
LumberJackの現在のバージョンには次のことが必要です。
App Storeのアプリプライバシーの詳細ごとに、Appleはアプリ開発者にデータ収集に関する情報を提供するよう要求しています。SDKメンテナーは同じデータを提供する必要があります。
デフォルトでは、CocoAlumberJackはそれ自体でデータを収集しません。
データ収集プラクティスリストを参照してください。
CocoAlumberJackは、これらのログをさまざまなプラットフォームに簡単に送信できるログフレームワークです。
これが、アプリ開発者がログメッセージに機密データを含める場合、データの収集が非常に簡単に発生する可能性がある理由です。
重要な注意:アプリ開発者は、ロギングシステムを介して収集された機密データに対して完全に責任を負います!
その結果、Appleのプライバシー詳細ポリシー(上記)に準拠し、ユーザーデータが収集される方法を文書化する必要があります。 CocoAlumberJackを介してデータが間接的に収集される可能性のあるシナリオの数は非常に大きいため、アプリ開発者として、アプリのコードを適切に確認してそれらのケースを特定するのはあなた次第です。私たちが助けるためにできることは、フレームワークを通じて潜在的なデータ収集についての認識を高めることです。
プライベートデータには以下が含まれますが、これらに限定されません。
例: DDLogInfo("User: (myUser)") 、 myUser情報をログに追加するため、それらがサードパーティに転送されるか、電子メールで送信される場合、データ収集としての資格があります。