Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- pod install
- notifychanged
- List
- DevelopmentRegion
- transformation.map
- base64 변환
- url 관찰
- ViewBuilder
- ios
- 개발자 면접
- detect url
- GeometryReader
- UIPresentationController
- SwiftUI
- swift
- url 추적
- 상단 탭바
- development language
- Android
- convert base64
- swift #swift keychain #keychain 사용법
- oberve url
- 스크롤 탭
- 기존 앱
- Side Menu
- Tuist
- UIViewControllerTransitioningDelegate
- DataBinding
- scrolling tab
- Swift Package Manager
Archives
- Today
- Total
버그 잡이
Swift 디버깅 식별자 #나만의 로그print 만들기 본문
Xcode는 안드로이드 스튜디오에 비해 디버깅 메시지가 불친절합니다.
그래서 custom 로그를 찍을 수 있는 함수를 만들어서 쓰는 경우가 많은데요.
이는 swift의 디버깅 식별자 라는 것을 활용해 만들 수 있습니다.
디버깅 식별자
#file : 현재 코드가 실행 중인 파일 이름을 나타냅니다.
#line : 현재 코드가 실행되고 있는 파일의 몇 번 줄에 위치하는지 나타냅니다.
#column : 현재 코드가 실행되고 있는 줄의 몇 번 칸에 위치하는지 나타냅니다.
#function : 현재 코드가 실행되고 있는 함수의 이름을 나타냅니다.
myLogPrint 만들기
#file, #line #function을 사용하여 현재 찍은 로그가 어떤 파일, 몇번째 줄, 어떤 function인지 나타내주는 함수를 만들어 보겠습니다.
public func myLogPrint(_ object: Any, filename: String = #file, _ line: Int = #line, _ funcname: String = #function) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm:ss:SSS"
print("Log!! : \(dateFormatter.string(from: Date())) file: \(file) line: \(line) func: \(funcname))
print(object)
}
//사용
myLogPrint("=== didFinishLaunchingWithOptions ===")
위 코드의 결과 아래와 같이 출력됩니다.
Log!! : 16:32:53:427 file: AppDelegate line: 26 func: application(_:didFinishLaunchingWithOptions:)
=== didFinishLaunchingWithOptions ===
*참고
책 : 야곰의 스위프트 프로그래밍 3판
반응형
'Swift' 카테고리의 다른 글
Swfit - 객체를 포함한 json 을 string으로 변환하기 (0) | 2020.10.05 |
---|---|
Swift - "오늘 하루 보지 않기" 팝업 Date() 계산하기 (0) | 2020.09.28 |
Swift 프로토콜 지향 프로그래밍(POP) (0) | 2020.08.19 |
Swift - Escaping Closure(탈출 클로저) 간단 이해 (0) | 2020.08.13 |
Swift - protocol(프로토콜) (0) | 2020.08.09 |
Comments