URLSession을 사용할때 JSON데이터를 print하면 Postman에서의 출력과는 다르게 한줄로 보기 힘들게 출력됩니다
extension Data {
var prettyJson: String? {
guard let object = try? JSONSerialization.jsonObject(with: self, options: []),
let data = try? JSONSerialization.data(withJSONObject: object, options: [.prettyPrinted]),
let prettyPrintedString = String(data: data, encoding:.utf8) else { return nil }
return prettyPrintedString
}
}
다음과 같이 Data에 Extension을 사용하여 로그출력을 포스트맨과 같이 보기편하게 볼수 있습니다.
Print를 사용하면 해당 데이터만 로그에 출력됩니다
public func Log<T>(_ object: T?, filename: String = #file, line: Int = #line, funcName: String = #function) {
#if !Release
if let obj = object {
print("\(Date()) \(filename.components(separatedBy: "/").last ?? "")(\(line)) : \(funcName) : \(obj)")
} else {
print("\(Date()) \(filename.components(separatedBy: "/").last ?? "")(\(line)) : \(funcName) : nil")
}
#endif
}
위의 메서드를 사용하면 메서드가 호출된 파일, 라인, 메서드 이름도 함께 출력되서 위치를 빠르게 파악할수 있습니다
#if !Releas는 현재상태가 Releas를 빌드하는 것이면 로그를 출력되지 않게 해줍니다
'IOS > iOS' 카테고리의 다른 글
[iOS] Memory Graph Debugger with XCode (0) | 2021.07.11 |
---|---|
[iOS] Quick, Nimble Install 방법 (0) | 2021.07.09 |
[TIL] Workspace, Project, Target, Scheme, Build Settings, Configurations, Build Phases 의 의미 (0) | 2021.03.28 |
[TIL] Moya 장점과 간단한 사용법 (0) | 2021.01.21 |
[iOS] Dynamic View (With: PageView, TableView, CollectionView) / Standard Apple WeatherApp UI (0) | 2021.01.11 |