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...).

在您编写框架的情况下,如果没有按照您喜欢的方式设置记录器,您将需要一些逻辑和自述文件来设置记录器。

可能不是完成它的最优雅的方式,但它确实有效。

希望有帮助。

于 2016-09-29T02:07:12.810 回答
0

安装“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 存储库

于 2016-04-11T14:10:35.410 回答