微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NSLog有一个Swift替代(@“%s”,__PRETTY_FUNCTION__)

在Objective C中,您可以使用以下方法记录正在调用方法
NSLog(@"%s",__PRETTY_FUNCTION__)

通常这是从日志宏使用。

虽然Swift不支持宏(我想),我仍然想使用一个通用的日志语句,包括调用函数名称。这是可能在Swift吗?

更新:
我现在使用这个全局函数进行日志记录:

public func EVLog<T>(object: T,filename: String = __FILE__,line: Int = __LINE__,funcname: String = __FUNCTION__) {
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MM/dd/yyyy HH:mm:ss:SSS"
    var process = nsprocessInfo.processInfo()
    var threadId = "?" 
    println("\(dateFormatter.stringFromDate(NSDate())) \(process.processName))[\(process.processIdentifier):\(threadId)] \(filename.lastPathComponent)(\(line)) \(funcname):\r\t\(object)\n")
}

然后,您可以调用

EVLog("/(error)")

然后将看起来像这样:

6/19/2015 17:13:19:042 AppMessage)[3462:.] RootViewController.swift(68) getUser():
    ERROR: Unable to get user
Swift有__FILE__,__FUNCTION__,__LINE__和__COLUMN__。从 Swift Programming Language

__FILE__ – String – 显示它的文件名称

__LINE__ – Int – 出现它的行号。

__COLUMN__ – Int – 它开始的列号。

__FUNCTION__ – String – 声明的名称

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐