2016-03-12 110 views
5

私はSwiftフレームワークの中でXCGLoggerを使用したいと思います。このフレームワークを含むアプリケーションは、XCGLoggerを使用する場合と使用しない場合があります。フレームワークでXCGLoggerを使用する方法

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

+0

これを解決しましたか? –

+1

私はちょうどフレームワークの別のロガーインスタンスを使用しています – SuitedSloth

答えて

0

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

application(_:didFinishLaunchingWithOptions:)のconfigure XCGLoggerでAppDelegate.swift」

`でpods

use_frameworks! 

target '<YouAppName>' do 
pod 'XCGLogger' 

import XCGLoggerと 'XCGLogger' をインストールするには、私は私のBLUserServicesCD.swiftXCGLoggerを使用するとします。したがって、ファイルの先頭にimport XCGLoggerがあります。 変数private let Logger = XCGLogger.defaultInstance()を作成し、また必要に応じてこれら以下に便利なメソッドを使用しようと

Logger.info("USER DELETED SUCCESSFULLY") OR

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

を使用してログインします。詳細については

enter image description here

私は単に両方で同じXCGLogger.defaultInstance()を参照することにより、プロジェクトと枠組みの中で同じロガーを使用することができるよGitHub Repository

+4

OPは彼らが構築しているフレームワークにXCGLoggerを統合する方法を尋ねていました。 XCGLoggerをアプリケーション/プロジェクトに簡単に統合する方法については、回答が徹底していますが、OPの質問は解決しません。 –

1

を参照してください。

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

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

import XCGLogger &は私Class宣言の前にロガーlet log = XCGLogger.defaultInstance()をインスタンス化します。

didFinishLaunchingWithOptionsAppDelegate.swiftに戻すと、log.setup(...your params...)となります。

フレームワークをオーサリングしている場合は、好みの設定になっていなければ、ロガーを設定するためのロジックとreadmeのメモが必要です。

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

希望に役立ちます。

関連する問題