: 애플이 권장하는 로깅 방식이다.
import OSLog
import OSLog
// os_log(_:) : 로그메시지만 출력
os_log("log message")
// os_log(_:type:) : 로그메시지와 에러 수준 지정
os_log("log message", type: .default)
// os_log(_:log:_:) : 에러 수준 지정 가능
os_log(.error, log: .default, "log message")
os_log(.fault, log: .default, "log message")
// subsystema과 카테고리 지정하기
let zeddOsLog = OSLog(subsystem: "com.zedd.os-log-Test", category: "UI")
os_log("UI 로그", log: zeddOsLog)
// 익스텐션을 통해 원하는 subsystem과 카테고리로 메시지 로깅 가능
extension OSLog {
private static var subsystem = Bundle.main.bundleIdentifier!
static let ui = OSLog(subsystem: subsystem, category: "UI")
static let data = OSLog(subsystem: subsystem, category: "Data")
}
os_log(.fault, log: .data, OSLogMessage.logMessage)
// 로그 메시지로 문자열 보간법 대신, 미리 선언해 우회적으로 사용 가능
// 메시지 타입으로 StaticString을 요구하기 때문
let message = "new log message with name \(user.name)"
os_log(.info, log: .network, "%@", message)
Logger
logger.info