使用os_log和NSLog快速记录iOS> = 8

时间:2017-11-06 07:45:15

标签: ios swift logging nslog

我想使用os_log(适用于iOS> = 10.0)和NSLog编写自己的日志记录功能。

我已经写了这段代码:

static func LogDebug(log: StaticString) {
    if #available(iOS 10.0, *) {
        os_log(log, type: .debug)
    } else {
        NSLog(log)
    }
}

但现在我得到的异常是StaticString无法转换为普通的String。你知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:5)

os_log()NSLog()的第一个参数是格式字符串,并包含 format specifiers(以%开头),由以下变量参数列表扩展。

要记录任意字符串,请使用%@格式,然后使用 串。否则,如果字符串包含%个字符,它可能会崩溃或产生错误的输出:

func LogDebug(log: String) {
    if #available(iOS 10.0, macOS 10.12, *) {
        os_log("%@", type: .debug, log)
    } else {
        NSLog("%@", log)
    }
}

答案 1 :(得分:1)

试试这样。

System.out.println(doc.select("div.ClassName image").attr(src));