我想在我正在编写的Swift框架中使用XCGLogger。包含此框架的应用程序可能也可能不使用XCGLogger。
接近这种情况的最佳方法是什么?我会使用依赖注入之类的东西让应用程序将XCGLogger实例发送到框架吗?在框架中我可以调用XCGLogger的设置方法吗?
答案 0 :(得分:2)
我能够在项目和框架中使用相同的记录器,只需在两者中引用相同的XCGLogger.defaultInstance()
即可。
首先,导入中的import XCGLogger
,然后使用let log = XCGLogger.defaultInstance()
在项目中实例化日志实例。
之后我实例化我使用的框架的sharedInstance
(根据我的特定用例)。
在框架内import XCGLogger
&在我的let log = XCGLogger.defaultInstance()
声明之前实例化记录器Class
。
然后,回到didFinishLaunchingWithOptions
的{{1}},我执行AppDelegate.swift
。
如果您正在编写框架,如果没有按照您喜欢的方式进行设置,您将需要一些逻辑和自述文件来设置记录器。
可能不是最优雅的方式来完成它,但确实有效。
希望有所帮助。
答案 1 :(得分:0)
使用pods
use_frameworks!
target '<YouAppName>' do
pod 'XCGLogger'
`appDelegate.swift'中的 import XCGLogger
在application(_: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 Repository