加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:10:36 所属栏目:百科 来源:网络整理
导读:在Objective C中,您可以使用以下方法记录正在调用的方法: NSLog(@"%s",__PRETTY_FUNCTION__) 通常这是从日志宏使用。 虽然Swift不支持宏(我想),我仍然想使用一个通用的日志语句,包括被调用的函数的名称。这是可能在Swift吗? 更新: 我现在使用这个全局
在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):rt(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 – 声明的名称。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读