6

私が書いている Swift フレームワーク内で XCGLogger を使用したいと考えています。このフレームワークを含むアプリは、XCGLogger も使用する場合と使用しない場合があります。

この種のシナリオにアプローチする最善の方法は何ですか? 依存性注入のようなものを使用して、アプリが XCGLogger インスタンスをフレームワークに送信できるようにしますか? フレームワークのどこで XCGLogger の setup メソッドを呼び出すでしょうか?

4

2 に答える 2

2

XCGLogger.defaultInstance()プロジェクトとフレームワークの両方で同じロガーを参照するだけで、同じロガーを使用できます。

まず、import XCGLoggerインポートで、次に を使用してプロジェクトでログ インスタンスをインスタンス化しますlet log = XCGLogger.defaultInstance()

その後、sharedInstance使用しているフレームワークの をインスタンス化します (特定のユース ケースごとに)。

フレームワーク内で、宣言 の前にimport XCGLoggerロガーをインスタンス化します。let log = XCGLogger.defaultInstance()Class

次に、 に戻ってdidFinishLaunchingWithOptionsAppDelegate.swiftを実行しlog.setup(...your params...)ます。

フレームワークを作成する場合、ロガーが希望どおりに設定されていない場合にロガーを設定するためのロジックと readme ノートが必要になります。

おそらく最もエレガントな方法ではありませんが、うまくいきます。

それが役立つことを願っています。

于 2016-09-29T02:07:12.810 に答える
0

「XCGLogger」をインストールしますpods

use_frameworks!

target '<YouAppName>' do
pod 'XCGLogger'

import XCGLogger「AppDelegate.swift」内

XCGLoggerapplication(_:didFinishLaunchingWithOptions:)の構成で

    //Setting up XCGLogger shared instance ()
    XCGLogger.defaultInstance().setup(.Debug, showLogLevel: true, showFileNames: true, showLineNumbers: true, writeToFile: nil, fileLogLevel: .Debug)

XCGLoggerで使用したいとしますBLUserServicesCD.swift。したがって、import XCGLoggerファイルの先頭に. を使用して変数private let Logger = XCGLogger.defaultInstance()とログを作成します

Logger.info("USER DELETED SUCCESSFULLY")また

Logger.error("COULD NOT DELETE USER \(error), \(error?.userInfo)")

また、必要に応じて次の便利なメソッドを使用してみてください。

ここに画像の説明を入力

詳細については、GitHub リポジトリを参照してください。

于 2016-04-11T14:10:35.410 に答える