Swift:格式化控制台日志

Swift:格式化控制台日志,第1张

概述是否有可能创建自定义日志功能? 这是默认的println(“hello world”)的样子: 2015-03-04 18:33:55.788 MyApp[12345:671253923] Hello World 我想输出如下内容: 18:33 MyClass > myFunc [line 1] Hello World 首先,当时,您可以将当前小时和分钟作为字符串获取: func printTim 是否有可能创建自定义日志功能?

这是默认的println(“hello world”)的样子:

2015-03-04 18:33:55.788 MyApp[12345:671253923] Hello World

我想输出如下内容:

18:33 MyClass > myFunc [line 1] Hello World
解决方法 首先,当时,您可以将当前小时和分钟作为字符串获取:

func printTime()->String{        let date = NSDate()        let calendar = NSCalendar.currentCalendar()        let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute,fromDate: date)        let hour = components.hour        let minutes = components.minute        return "\(hour):\(minutes)"}

对于功能等,您可以使用Swift Literal Expressions __file __,__ FUNCTION__和__liNE__.

但是每次要记录时都不想设置它.所以你可以这样做:

func prettyPrint(print: String,file:String = __file__,functionname: String = __FUNCTION__,line:Int = __liNE__) {    println("\(printTime()) \(file) > \(functionname) [line \(line)] \(print)")}

你这样称为prettyPrint:

prettyPrint("hey")

您将获得以下输出:

/Path/To/Your/file/MyClass.swift > hello [line 81] hey

但是,由于您只需要类的名称,因此可以使用以下函数删除路径:

func getfile(path:String = __file__)->String{    var parts =  path.componentsSeparatedByString("/")    return parts[parts.count-1]}

或者,正如他在回答中提到的ChikabuZ你可以直接查看课程:

let classname = NsstringFromClass(self.classForCoder).pathExtension

最终功能

这里是最终的功能:

func getfile(path:String = __file__)->String{    var parts =  path.componentsSeparatedByString("/")    return parts[parts.count-1]}func prettyPrint(print: String,line:Int = __liNE__) {    println("\(printTime()) \(getfile()) > \(functionname) [line \(line)] \(print)")}func printTime()->String{    let date = NSDate()    let calendar = NSCalendar.currentCalendar()    let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute,fromDate: date)    let hour = components.hour    let minutes = components.minute    return "\(hour):\(minutes)"}

结果将是:

MyClass.swift > hello [line 81] hey

你还应该注意@ emaloney对这个问题的回答.特别是那个

println()-based solutions result in output being captured by the Apple System Log (ASL).

理想情况下,切换到NSLog或完整的日志记录系统

总结

以上是内存溢出为你收集整理的Swift:格式化控制台日志全部内容,希望文章能够帮你解决Swift:格式化控制台日志所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1003838.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存