2

我在 XCGLogger github 页面的 README 文件中看到了以下说明。

“另一种常见的使用模式是拥有多个记录器,可能一个用于 UI 问题,一个用于网络问题,另一个用于数据问题。

每个日志目标都可以有自己的日志级别。为方便起见,您可以在日志对象本身上设置日志级别,它将将该级别传递给每个目标。然后设置需要不同的目的地。”

我认为使用 XCGLogger 非常有用和有意义。任何专家都可以展示有关如何添加具有不同目的的多个目的地的演示。或者我需要使用多个日志对象?

4

1 回答 1

4

是的,在这种情况下,您将使用不同的日志对象。

根据自述文件中的高级用法示例,您可以执行以下操作:

// Create a logger for UI related events
let logUI = XCGLogger(identifier: "uiLogger", includeDefaultDestinations: false)

// Create a destination for the system console log (via NSLog)
let systemLogDestination = XCGNSLogDestination(owner: logUI, identifier: "uiLogger.systemLogDestination")

// Optionally set some configuration options
systemLogDestination.outputLogLevel = .Debug
systemLogDestination.showLogIdentifier = false
systemLogDestination.showFunctionName = true
systemLogDestination.showThreadName = true
systemLogDestination.showLogLevel = true
systemLogDestination.showFileName = true
systemLogDestination.showLineNumber = true
systemLogDestination.showDate = true

// Add the destination to the logger
logUI.addLogDestination(systemLogDestination)

// Create a logger for DB related events
let logDB = XCGLogger(identifier: "dbLogger", includeDefaultDestinations: false)

// Create a file log destination
let fileLogDestination = XCGFileLogDestination(owner: logDB, writeToFile: "/path/to/file", identifier: "advancedLogger.fileLogDestination")

// Optionally set some configuration options
fileLogDestination.outputLogLevel = .Verbose
fileLogDestination.showLogIdentifier = false
fileLogDestination.showFunctionName = true
fileLogDestination.showThreadName = true
fileLogDestination.showLogLevel = true
fileLogDestination.showFileName = true
fileLogDestination.showLineNumber = true
fileLogDestination.showDate = true

// Add the destination to the logger
logDB.addLogDestination(fileLogDestination)

// Add basic app info, version info etc, to the start of the logs
logUI.logAppDetails()
logDB.logAppDetails()

// Add database version to DB log
logDB.info("DB Schema Version 1.0")

这将创建两个日志对象,一个用于具有 Debug 级别的 UI 事件,一个用于具有 Verbose 级别的 DB 事件。

于 2016-05-02T14:50:32.553 回答