Need
앱 로깅
Default options
Why it's needed
구조화된 통합 로깅을 사용하면 코드 곳곳에 print 문을 넣을 필요 없이 Codex가 필요한 이벤트만 필터링해 동작을 확인할 수 있습니다.
.md to the page URL.
Codex use case
Codex로 Mac 앱의 기능 하나에 Logger를 추가하세요. 앱을 실행한 뒤 해당 동작이 수행됐는지 통합 로그에서 확인하세요.
Codex와 Build macOS Apps 플러그인을 사용해 윈도우, 사이드바, 명령어 또는 동기화 플로우의 주요 지점에 Logger 이벤트를 몇 개 추가하세요. 앱을 실행한 뒤 의도한 동작이 수행됐는지 콘솔이나 log stream에서 확인하세요.
Codex로 Mac 앱의 기능 하나에 Logger를 추가하세요. 앱을 실행한 뒤 해당 동작이 수행됐는지 통합 로그에서 확인하세요.
Codex와 Build macOS Apps 플러그인을 사용해 윈도우, 사이드바, 명령어 또는 동기화 플로우의 주요 지점에 Logger 이벤트를 몇 개 추가하세요. 앱을 실행한 뒤 의도한 동작이 수행됐는지 콘솔이나 log stream에서 확인하세요.
Codex와 Build macOS Apps 플러그인을 사용해 윈도우, 사이드바, 명령어 또는 동기화 플로우의 주요 지점에 Logger 이벤트를 몇 개 추가하세요. 앱을 실행한 뒤 의도한 동작이 수행됐는지 콘솔이나 log stream에서 확인하세요.
Related links
| Skill | Why use it |
|---|---|
| Build macOS Apps | macOS 텔레메트리 스킬과 빌드 및 실행 스킬로 구조화된 `OSLog` 로깅을 추가하세요. 앱을 실행해 UI에서 해당 기능을 직접 사용한 뒤 콘솔이나 `log stream`에서 기록된 이벤트를 확인하세요. |
Mac 앱에서 “뭔가 일어났다”는 것만 알고 코드 리뷰만으로는 실제 동작을 파악하기 어려울 때 이 방법을 사용하세요. Codex에 특정 동작을 파악하는 데 필요한 통합 로그를 몇 개 추가하고, 앱을 실행해 해당 동작을 재현한 뒤, 콘솔 앱이나 log stream에서 예상한 이벤트가 발생했는지 확인해 달라고 요청하세요.
이 과정에는 Build macOS Apps 플러그인을 사용하세요. 이 플러그인의 macOS 텔레메트리 스킬은 간단한 절차에 집중합니다. Apple의 Logger를 사용하고, 어떤 기능의 로그인지 알아보기 쉽도록 서브시스템과 카테고리를 정하세요. 동작이 시작되거나 끝나는 지점과 상태 전환을 기록하되 민감한 데이터는 제외하세요. 앱을 로컬에서 빌드하고 실행한 뒤 실제 이벤트가 기록되는지 확인하세요.
로그를 잘 남기면 Codex가 패치할 때마다 같은 절차로 결과를 확인할 수 있습니다. 사용자가 창과 메뉴 동작, 동기화 상태 전환을 일일이 확인할 필요 없이 에이전트가 앱을 실행해 해당 플로우를 재현하고, 필요한 로그만 추려 본 뒤 그 결과를 근거로 다음에 수정할 코드를 결정할 수 있습니다.
특히 다음 세 가지 방식으로 에이전트와 작업할 때 유용합니다.
상태가 바뀔 때마다 로그를 남기는 코드를 영구적으로 두기보다는 Codex에 기능 영역별로 로거를 하나씩 추가해 달라고 요청하세요. Windowing, Commands, MenuBar, Sidebar, Sync, Import처럼 기능별로 카테고리를 나누면 다음에 디버깅할 때 필요한 로그만 훨씬 쉽게 골라낼 수 있습니다.
import SwiftUI
struct SidebarItem { let id: String }
@MainActor private var selection: String?
import OSLog
private let logger = Logger(
subsystem: Bundle.main.bundleIdentifier ?? "SampleApp",
category: "Sidebar"
)
@MainActor
func selectItem(_ item: SidebarItem) {
logger.info("Selected sidebar item: \(item.id, privacy: .public)")
selection = item.id
}info는 나중에도 참고할 만한 동작이나 수명 주기 이벤트를 간결하게 기록할 때 사용하세요. debug는 로컬 상태를 자세히 살펴보기 위해 자주 남기는 로그에 사용하세요. 이런 로그는 작업을 마치기 전에 제거하거나 로그 수준을 낮춰도 됩니다. signpost는 특정 구간의 소요 시간을 측정할 때만 추가하세요.
Logger 호출을 추가한 뒤에는 실제로 이벤트가 기록되는지 확인하세요. Codex에 앱을 실행해 로그를 추가한 플로우를 재현하고, 확인에 사용한 콘솔 앱의 필터나 log stream 조건식을 그대로 보여 달라고 요청하세요. 대표 로그 한두 줄도 함께 요청하세요.
log stream --style compact --predicate 'subsystem == "com.example.app" && category == "Sidebar"'
예상한 이벤트가 나타나지 않으면 Codex에 로그를 남기는 위치를 문제가 의심되는 실행 경로에 더 가깝게 옮긴 뒤 같은 플로우를 다시 실행해 달라고 요청하세요. 로그로 실제 동작을 설명할 수 있을 때까지 이 과정을 반복하세요. 앱 충돌이나 백트레이스를 분석해야 한다면 플러그인의 빌드 및 실행 디버깅 워크플로우로 전환하고, 텔레메트리는 동작의 시작과 종료 지점에 집중하세요.
오래 추적해야 하거나 간헐적으로 발생하는 버그라면 Codex에 관련 로그만 골라 작은 로컬 추적 파일에 저장하고, 이벤트를 시간순으로 요약한 뒤 파일을 워크스페이스에 남겨 달라고 요청하세요. 다음에 Codex를 실행할 때 기억에 의존해 전체 세션을 재현할 필요 없이 같은 기록을 살펴볼 수 있습니다. 한 번은 에이전트를 실행해 추적 기록을 수집하고 다음번에는 패치 전후의 동작을 비교하는 식으로 디버깅하기가 쉬워집니다.
사용자가 세션의 일부를 직접 진행해야 할 때도 이 방법이 유용합니다. Codex에 로그를 수집할 수 있는 디버깅 환경에서 앱을 실행한 뒤 필요한 로그만 필터링해 기록하도록 요청하세요. 사용자가 문제를 직접 재현하는 동안에는 기다렸다가 재현이 끝나면 저장한 추적 파일을 읽어 달라고 하세요.
로그가 기록되는 순서를 쉽게 파악할 수 있도록 사이드바, 창, 명령어, 동기화 경로 중 하나부터 시작하세요. 해당 경로가 안정적으로 동작하면 Codex가 같은 방식을 관련 플로우에도 적용할 수 있습니다.
Codex에 로그에 남기는 각 식별자가 무엇인지 설명하고, 비밀 정보나 개인정보, 원본 콘텐츠를 통합 로그에 기록하지 말라고 요청하세요. 로컬 디버깅에는 대개 몇 가지 이벤트만으로 충분합니다.
“텔레메트리를 추가했습니다”라는 설명만 있을 때보다 실제 로그 몇 줄을 보면 변경 사항이 의도대로 동작하는지 판단하기가 훨씬 쉽습니다. 다음에 에이전트를 실행할 때도 같은 절차로 검증할 수 있도록 Codex에 필터 조건식과 동작 순서를 간단히 정리해 넣어 달라고 요청하세요.
Need
Default options
Why it's needed
Need
앱 로깅
Default options
Why it's needed
구조화된 통합 로깅을 사용하면 코드 곳곳에 print 문을 넣을 필요 없이 Codex가 필요한 이벤트만 필터링해 동작을 확인할 수 있습니다.
Need
에이전트 워크플로우
Default options
Why it's needed
이 플러그인의 텔레메트리 스킬과 빌드 및 실행 스킬은 함께 사용하도록 설계됐습니다. 플로우 하나에 로깅을 추가하고 앱을 실행한 뒤, 로그를 살펴보면서 필요한 이벤트만 기록하도록 조정할 수 있습니다.
Need
런타임 검증
Default options
Console.app과 log stream --predicate ...
Why it's needed
사용한 로그 필터와 출력 예시를 함께 전달하면 에이전트가 앱을 다시 실행할 때마다 같은 절차로 새 로깅이 제대로 작동하는지 쉽게 검증할 수 있습니다.
| Need | Default options | Why it's needed |
|---|---|---|
| 앱 로깅 | OSLog Logger | 구조화된 통합 로깅을 사용하면 코드 곳곳에 print 문을 넣을 필요 없이 Codex가 필요한 이벤트만 필터링해 동작을 확인할 수 있습니다. |
| 에이전트 워크플로우 | Build macOS Apps 플러그인 | 이 플러그인의 텔레메트리 스킬과 빌드 및 실행 스킬은 함께 사용하도록 설계됐습니다. 플로우 하나에 로깅을 추가하고 앱을 실행한 뒤, 로그를 살펴보면서 필요한 이벤트만 기록하도록 조정할 수 있습니다. |
| 런타임 검증 | Console.app과 log stream --predicate ... | 사용한 로그 필터와 출력 예시를 함께 전달하면 에이전트가 앱을 다시 실행할 때마다 같은 절차로 새 로깅이 제대로 작동하는지 쉽게 검증할 수 있습니다. |
Codex와 Build macOS Apps 플러그인으로 앱 아이디어를 Mac에 맞는 `NavigationSplitView` 앱으로 구현하세요
Codex로 SwiftUI 기반 macOS 앱을 만들고 셸에서 빌드와 실행을 반복할 수 있도록 구성하세요
Codex에 AI 애플리케이션을 살펴보고 평가할 동작을 파악한 뒤, 바로 실행할 수 있는 Promptfoo 평가 스위트를 추가해 달라고 요청하세요.