我想在我正在编写的 Swift 框架中使用 XCGLogger。包含此框架的应用程序也可能使用也可能不使用 XCGLogger。
处理这种情况的最佳方法是什么?我会使用依赖注入之类的东西让应用程序将 XCGLogger 实例发送到框架吗?我会在框架的哪个位置调用 XCGLogger 的 setup 方法?
我可以在项目和框架中使用相同的记录器,只需XCGLogger.defaultInstance()
在两者中引用相同的记录器即可。
首先,import XCGLogger
在导入中,然后使用let log = XCGLogger.defaultInstance()
.
之后,我实例化了sharedInstance
我正在使用的框架(根据我的特定用例)。
在框架内,在我的声明 之前import XCGLogger
实例化记录器。let log = XCGLogger.defaultInstance()
Class
然后,回到 中didFinishLaunchingWithOptions
,AppDelegate.swift
我执行log.setup(...your params...)
.
在您编写框架的情况下,如果没有按照您喜欢的方式设置记录器,您将需要一些逻辑和自述文件来设置记录器。
可能不是完成它的最优雅的方式,但它确实有效。
希望有帮助。
安装“XCGLogger”pods
use_frameworks!
target '<YouAppName>' do
pod 'XCGLogger'
import XCGLogger
在“AppDelegate.swift”中
在application(_:didFinishLaunchingWithOptions:)
配置 XCGLogger 时
//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 存储库