2016-03-12 18 views
5

Voglio utilizzare XCGLogger all'interno di un framework Swift che sto scrivendo. L'app che include questo framework può anche non utilizzare XCGLogger.Come utilizzare XCGLogger in un framework

Qual è il modo migliore per accedere a questo tipo di scenario? Dovrei usare qualcosa come dependency injection per consentire all'app di inviare l'istanza XCGLogger al framework? Dove nel framework chiamerei il metodo di configurazione di XCGLogger?

+0

hai mai risolto questo? –

+1

Non proprio .. Sto solo usando un'istanza di logger separata dal framework – SuitedSloth

risposta

0

Installa 'XCGLogger' con pods

use_frameworks! 

target '<YouAppName>' do 
pod 'XCGLogger' 

import XCGLogger in `AppDelegate.swift'

In application(_:didFinishLaunchingWithOptions:) configurare XCGLogger con

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

Supponiamo che voglio usare nel mio XCGLoggerBLUserServicesCD.swift. Quindi, import XCGLogger nella parte superiore del file. Creare una variabile private let Logger = XCGLogger.defaultInstance() e accedere usando

Logger.info("USER DELETED SUCCESSFULLY") O

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

Prova di utilizzare questi seguiti metodi utili come richiesto.

enter image description here

Per maggiori dettagli si rimanda alla GitHub Repository

+4

L'OP stava chiedendo come integrare XCGLogger in un framework che stanno costruendo. Sebbene la tua risposta sia esauriente su come integrare facilmente XCGLogger in un'app/progetto, non risolve la domanda dell'OP. –

1

sono in grado di utilizzare lo stesso registratore nel progetto e un quadro semplicemente riferimento alla stessa XCGLogger.defaultInstance() in entrambi.

Prima, import XCGLogger nelle importazioni, Quindi creare un'istanza del log nel progetto utilizzando let log = XCGLogger.defaultInstance().

In seguito istanzio lo sharedInstance del framework che sto usando (per mio particolare caso d'uso).

All'interno della struttura, import XCGLogger & istanziare il logger let log = XCGLogger.defaultInstance() prima delle mie dichiarazioni Class.

Quindi, di nuovo in didFinishLaunchingWithOptions di AppDelegate.swift, faccio il log.setup(...your params...).

Nel caso in cui si crea il framework, è necessario disporre di alcune note logiche e readme per configurare il registratore se non si è configurato nel modo desiderato.

Probabilmente non è il modo più elegante per farlo, ma funziona.

Spero che questo aiuti.

Problemi correlati