第一步:获取打印文件名,方法名,行数
//1.获取打印所在的文件
let file = (#file as NSString).lastPathComponent;
print(file);
//2.获取打印所在的方法
let function = #function
print(function);
//3.获取打印所在的行号
let line = #line;
print(line)
第二步:全局化
swift中的 全局函数:写在每个文件对应的类外部
全局函数大部分写在APPdelegate中
此时就可以这样写
func ZNLog<T>(message:T, file:String = #file, funcName:String = #function, lineNum:Int = #line) {
let fileName = (file as NSString).lastPathComponent;
print("[文件名:\(fileName)]:[行数:\(lineNum)]-打印内容:\n\(message)");
}
第三步:配置DeBug下打印, Release 下不打印
swift中没有宏定义,只能通过添加配置字段
最终写法
func ZNLog<T>(message:T, file:String = #file, funcName:String = #function, lineNum:Int = #line) {
#if DEBUG
let fileName = (file as NSString).lastPathComponent;
print("[文件名:\(fileName)]:[行数:\(lineNum)]-打印内容:\n\(message)");
#endif
}