swift Log

Posted by Genie on July 10, 2020

在oc 中我们可以写出优雅的log 方式,在swift 我们也可以通过extension来实现


符号 类型 描述
#file String 包含这个符号的文件的路径
#line Int 符号出现处的列
#column String 包含这个符号的方法名字
1
2
3
4
5
6
7
8
9
10
extension String {
    func log(
        file: String = #file,
        line: Int = #line,
        column: Int = #column,
        method: String = #function
    ) {
        print("[\((file as NSString).lastPathComponent)][\(line)][\(column)] - \(method): \(self)")
    }
}

Call

"log".log()

当我们调试的时候,DEBUG 需要详细的log信息,我们可以通过T来实现

1
2
3
4
5
6
7
8
func log<T>(_ message: T,
            file: String = #file,
            line: Int = #line,
            column: Int = #column,
            method: String = #function
) {
    print("[\((file as NSString).lastPathComponent)][\(line)][\(column)] - \(method): \(message)")
}

log("sun")