OSLog를 활용한 디버깅

임혜정·2024년 6월 19일
2

Oslog는 iOS와 macOS 개발에서 애플리케이션의 로그 메시지를 기록하고 디버깅하는 데 사용된다. 이 프레임워크는 다양한 심각성 수준의 로그 메시지를 기록할 수 있다. 이것을 이용해 개발자가 애플리케이션의 동작을 쉽게 추적하고 문제를 진단할 수 있다

Oslog를 활용한 디버깅 방법 (OSLog 버전)

Swift의 OSLog 프레임워크를 사용하여 로그 메시지를 기록하고 디버깅할 수 있다. 이 프레임워크는 다양한 심각성 수준의 로그 메시지를 기록할 수 있도록 한다.

OSLog를 활용한 디버깅 방법


  1. OSLog 프레임워크 임포트:
import OSLog

❗️iOS 14, macOS 11, watchOS 7, tvOS 14 이하라면 import os.log


  1. Logger 인스턴스 생성:
let logger = Logger(subsystem: "com.yourApp.identifier", category: "yourCategory")

  1. 로그 메시지 기록:
logger.log("This is a log message.")
logger.info("This is an informational message.")
logger.debug("This is a debug message.")
logger.error("This is an error message.")
logger.fault("This is a fault message.")


.log 심각성 레벨

OSLog에서 사용되는 심각성 레벨은 다음과 같다:

  1. Default (기본): 일반적인 로그 메시지를 기록한다. 심각성이 높지 않은 일반 정보를 포함한다.
logger.log("This is a default log message.")
  1. Info (정보): 애플리케이션의 상태나 일반적인 작업 흐름에 대한 정보를 기록한다. 디버깅을 위한 추가적인 정보를 제공한다.
logger.info("This is an informational message.")
  1. Debug (디버그): 개발 중에 유용한 자세한 디버깅 정보를 기록한다. 이 메시지는 주로 개발자만 이해할 수 있는 기술적인 내용을 포함한다.
logger.debug("This is a debug message.")
  1. Error (오류): 오류를 기록한다. 애플리케이션에서 발생한 문제를 나타내며 사용자에게 표시될 수 있다.
logger.error("This is an error message.")
  1. Fault (치명적 오류): 심각한 문제를 기록한다. 이 문제는 시스템이 안정적으로 운영되기 어렵게 만드는 치명적인 오류를 나타낸다.
logger.fault("This is a fault message.")

(위 코드는 Swift 5와 Xcode 12 이상에서 사용할 수 있음)
OSLog를 사용하여 다양한 심각성 수준의 로그 메시지를 기록하는 데 유용하다. 로그 메시지를 기록할 때는 각 심각성 레벨에 맞는 메서드를 사용하여 로그를 기록하면 된다.




import UIKit
import OSLog

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        os_log(.default, "default \(self.getRandomNumber())")
        os_log(.debug, "debug \(self.getRandomNumber())")
        os_log(.info, "info \(self.getRandomNumber())")
        os_log(.error, "error \(self.getRandomNumber())")
        os_log(.fault, "fault \(self.getRandomNumber())")
    }
    
    func getRandomNumber() -> Int {
        return Int.random(in: 0...10)
    }

}

실행


lldb를 사용한 디버깅. lldb는 break point와 사용하면 효과가 더 좋다.


po - print object

-입문 1주차 1-3 xcode 빌드

profile
오늘 배운걸 까먹었을 미래의 나에게..⭐️

0개의 댓글