[swift] Swift XCGLogger를 사용하여 로그 메시지를 어떻게 화면에 스크롤하나요?
- XCGLogger 라이브러리를 프로젝트에 추가합니다. 먼저,
Podfile
에 아래와 같이 추가합니다.
pod 'XCGLogger'
- 터미널을 열고 프로젝트 루트 디렉토리에서 다음 명령을 실행하여 CocoaPods를 설치합니다.
pod install
- 이제 프로젝트에서 XCGLogger를 사용할 준비가 되었습니다. 다음과 같이 XCGLogger를 초기화하고 화면에 스크롤되는 로그 메시지를 표시할 준비를 합니다.
import XCGLogger
let logger = XCGLogger.default
class ViewController: UIViewController {
...
}
- 이제 로그 메시지를 출력할 때마다 스크롤이 가능한 텍스트 뷰에 표시되도록 만들어보겠습니다. 뷰 컨트롤러에
UITextView
를 추가하고 아울렛을 설정합니다.
@IBOutlet weak var logTextView: UITextView!
viewDidLoad()
메서드에서 XCGLogger에 텍스트 로그 출력을 설정하고, 텍스트 뷰의 스크롤 속성을 설정합니다.
override func viewDidLoad() {
super.viewDidLoad()
// 로그 출력 설정
logger.outputLevel = .debug
logger.outputDateFormat = "HH:mm:ss.SSS"
logger.showLogIdentifier = false
logger.showFunctionName = true
logger.showThreadName = true
logger.showLevel = true
logger.showFileNames = true
logger.showLineNumbers = true
logger.showDate = true
logger.logAppDetails()
// 텍스트 뷰 스크롤 속성 설정
logTextView.isEditable = false
logTextView.isScrollEnabled = true
logTextView.contentInsetAdjustmentBehavior = .always
}
- 이제 로그 메시지가 출력될 때마다 텍스트 뷰에 추가되도록 설정해야 합니다.
XCGLogger
의logAppDetails()
메서드 밑에 다음 코드를 추가합니다.
logger.logDestination = XCGConsoleLogDestination(owner: logger, writeToFile: nil, identifier: "_default", shouldAppend: false, appendMarker: "") { (logDetails: LogDetails, logString: String) in
logTextView.text += "\(logString)\n"
let range = NSMakeRange(logTextView.text.count - 1, 0)
logTextView.scrollRangeToVisible(range)
}
이제 로그 메시지가 화면에 스크롤되며 표시됩니다.