버그 잡이

Swift 디버깅 식별자 #나만의 로그print 만들기 본문

Swift

Swift 디버깅 식별자 #나만의 로그print 만들기

버그잡이 2020. 9. 1. 23:09

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판

반응형
Comments