
这是默认的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:格式化控制台日志所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)