# 로깅 {#logging}

CLI는 로깅을 위해 [swift-log](https://github.com/apple/swift-log) 인터페이스를 채택합니다. 이 패키지는 로깅의 구현 세부 사항을 추상화하여 CLI가 로깅 백엔드에 구애받지 않도록 합니다. 로거는 태스크 로컬을 통해 의존성 주입되며, 어디서든 다음을 사용해 접근할 수 있습니다:

```bash
Logger.current
```

> [!NOTE]
> `Dispatch` 또는 분리된(detached) 태스크를 사용할 때 태스크 로컬은 값을 전파하지 않으므로, 이를 사용하는 경우 값을 가져와 비동기 작업에 전달해야 합니다.


## 로깅 대상 {#what-to-log}

로그는 CLI의 UI가 아닙니다. 문제가 발생했을 때 진단하는 도구입니다. 따라서 제공하는 정보가 많을수록 좋습니다. 새로운 기능을 개발할 때는 예상치 못한 동작을 마주한 개발자의 입장이 되어, 어떤 정보가 도움이 될지 생각해 보세요. 올바른 [로그 수준](https://www.swift.org/documentation/server/guides/libraries/log-levels.html)을 사용하세요. 그렇지 않으면 개발자가 불필요한 정보를 걸러낼 수 없습니다.
