如何在框架

时间:2016-03-12 07:27:14

标签: swift xcglogger

我想在我正在编写的Swift框架中使用XCGLogger。包含此框架的应用程序可能也可能不使用XCGLogger。

接近这种情况的最佳方法是什么?我会使用依赖注入之类的东西让应用程序将XCGLogger实例发送到框架吗?在框架中我可以调用XCGLogger的设置方法吗?

2 个答案:

答案 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

安装'XCGLogger'
use_frameworks!

target '<YouAppName>' do
pod 'XCGLogger'
`appDelegate.swift'中的

import XCGLogger

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

还尝试根据需要使用以下有用的方法。

enter image description here

有关详细信息,请参阅GitHub Repository