打印调试信息

本文介绍了Debug模式和Release模式下的日志输出方法。在Debug模式下,通过TRACE宏进行日志打印;而在Release模式下,则推荐使用OutputDebugString函数配合Dbgview.exe工具。此外还提到了其他日志输出方式如写入文件或控制台。

Debug模式:

Debug模式下使用TRACE宏打印日志消息,我们可以在OutPut窗口中看到打印的日志信息。

 

Release模式:

此时,使用TRACE宏将是无效,但是可以使用OutputDebugString函数将日志信息打印到另外一个调试窗口中(Dbgview.exe)。Dbgview.exe是专门用来接收Release下的日志打印。

 

其他方法也可以,比如写log文件;或使用控制台窗口来输出

在Swift中,有多种打印调试信息的方法,以下为你介绍几种常见的方式: #### 使用系统自带的`print`和`debugPrint`函数 - `print`函数用于常规的打印输出,它会调用对象的`description`属性来获取对象的字符串表示。 - `debugPrint`函数主要用于调试目的,它会调用对象的`debugDescription`属性,通常会提供更详细的信息。 ```swift let number = 42 print(number) debugPrint(number) ``` #### 自定义打印函数 可以自定义打印函数,在其中添加文件名、方法名、行号等信息,方便调试定位问题。 ##### 自定义打印日志函数 ```swift func PrintLog<T>(_ message: T, fileName: String = #file, methodName: String = #function, lineNumber: Int = #line) { print("方法:\(methodName) 行号:\(lineNumber)\n打印信息:\(message)") } PrintLog("这是一条自定义打印信息") ``` ##### 带日期信息的自定义打印方法 ```swift func MLLog<T>(_ message : T, file : String = #file, funcName : String = #function, lineNum : Int = #line) { #if DEBUG let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" let datestr = formatter.string(from: Date()) let fileName = (file as NSString).lastPathComponent print("[\(datestr)] - [\(fileName)] [第\(lineNum)行] \(message)") #endif } MLLog("这是带日期信息的打印") ``` #### OC风格的宏定义打印(Swift中可通过函数模拟) 在OC中可以使用宏定义实现不同环境下的打印,在Swift中可以通过函数和编译条件来模拟。 ```swift func printLog<T>(message: T, file: String = #file, method: String = #function, line: Int = #line) { #if DEBUG let fileName = (file as NSString).lastPathComponent print("文件名:\(fileName) 函数名:\(method) 行号:\(line) 信息:\(message)") #endif } printLog(message: "模拟OC宏定义打印") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值