Need
Logs do aplicativo
Default options
Why it's needed
Com logs unificados e estruturados, o Codex pode filtrar os eventos e acompanhar apenas o fluxo em teste, sem espalhar chamadas a print pelo código.
.md to the page URL.
Codex use case
Use o Codex para instrumentar um recurso de um aplicativo para Mac com Logger, executar o aplicativo e confirmar a ação nos logs unificados.
Use o Codex e o plugin Build macOS Apps para registrar com Logger alguns eventos relevantes de janelas, barras laterais, comandos ou fluxos de sincronização. Depois, execute o aplicativo e confirme no Console ou com log stream que as ações esperadas ocorreram.
Use o Codex para instrumentar um recurso de um aplicativo para Mac com Logger, executar o aplicativo e confirmar a ação nos logs unificados.
Use o Codex e o plugin Build macOS Apps para registrar com Logger alguns eventos relevantes de janelas, barras laterais, comandos ou fluxos de sincronização. Depois, execute o aplicativo e confirme no Console ou com log stream que as ações esperadas ocorreram.
Use o Codex e o plugin Build macOS Apps para registrar com Logger alguns eventos relevantes de janelas, barras laterais, comandos ou fluxos de sincronização. Depois, execute o aplicativo e confirme no Console ou com log stream que as ações esperadas ocorreram.
Related links
| Skill | Why use it |
|---|---|
| Build macOS Apps | Use as habilidades de telemetria do macOS e de compilação e execução para instrumentar o código com logs estruturados do `OSLog`, iniciar o aplicativo, percorrer o fluxo na interface e verificar os eventos emitidos no Console ou com `log stream`. |
Este caso de uso se aplica a fluxos de aplicativos para Mac em que saber que “algo aconteceu” é vago demais para diagnosticar o problema só pela revisão do código. Peça ao Codex que registre alguns eventos relevantes nos logs unificados para acompanhar um comportamento específico, execute o aplicativo, reproduza esse comportamento e confirme no Console ou com log stream que os eventos esperados ocorreram.
Use o plugin Build macOS Apps nesse ciclo. A habilidade de telemetria do macOS foi pensada para manter a instrumentação simples. Use o Logger da Apple, escolha nomes claros para o subsistema e a categoria, registre o início e o fim das ações e as transições de estado e evite incluir dados sensíveis. Depois de compilar e executar o aplicativo localmente, confirme que o evento foi registrado antes de concluir que a instrumentação funciona.
Com bons logs, o Codex pode repetir o mesmo ciclo de verificação após cada correção. Em vez de pedir que você inspecione manualmente cada janela, ação de menu ou transição de sincronização, o agente pode executar o aplicativo, percorrer o fluxo, examinar os logs filtrados e usar o que observou para decidir qual será a próxima alteração no código.
Isso é especialmente útil em três ciclos com agentes de IA:
Peça ao Codex que use um logger por área funcional e evite adicionar uma linha de log permanente para cada alteração de estado. Categorias como Windowing, Commands, MenuBar, Sidebar, Sync ou Import facilitam a filtragem dos logs na próxima rodada de depuração.
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
}Use info para registrar de forma concisa ações e eventos do ciclo de vida que continuarão úteis com o tempo. Use debug para detalhes do estado local que geram mais ruído e cujos registros podem ser removidos ou passar para um nível de log menos visível antes do fim da tarefa. Adicione marcadores de intervalo (signposts) somente quando precisar medir a duração de uma operação.
Adicionar chamadas a Logger é só o primeiro passo. Peça ao Codex que execute o aplicativo, acione o fluxo instrumentado e forneça o filtro exato do Console ou o predicado de log stream que usou, junto com uma ou duas linhas de log representativas.
log stream --style compact --predicate 'subsystem == "com.example.app" && category == "Sidebar"'
Se um evento esperado não aparecer, peça ao Codex que mova a chamada de log para mais perto do trecho do código onde pode estar o problema, execute o mesmo fluxo novamente e repita o processo até que os logs expliquem o que aconteceu. Se a investigação passar a exigir a análise de um encerramento inesperado ou de um rastreamento de pilha, use o fluxo de depuração do plugin para compilar e executar o aplicativo e mantenha a telemetria concentrada no início e no fim das ações.
Para bugs que levam mais tempo para investigar ou ocorrem de forma intermitente, peça ao Codex que salve um fluxo de logs filtrado em um pequeno arquivo de rastreamento local, resuma os eventos em ordem cronológica e deixe o arquivo no espaço de trabalho. Assim, em uma execução posterior, o Codex poderá examinar as mesmas evidências sem precisar reconstruir a sessão inteira de memória. Isso facilita a depuração em etapas quando você quer que o agente colete o rastreamento em uma execução e, em outra, compare o comportamento antes e depois de uma correção.
Essa abordagem também funciona bem quando você precisa conduzir parte da sessão. Peça ao Codex que inicie o aplicativo em um ciclo de depuração que facilite a coleta de logs, comece a captura com o filtro aplicado, aguarde enquanto você reproduz o problema manualmente e leia o arquivo de rastreamento salvo quando você terminar.
Comece com uma única barra lateral, janela, comando ou rotina de sincronização para que a sequência de logs seja fácil de examinar. Se esse fluxo passar a funcionar de forma confiável, o Codex poderá aplicar o mesmo padrão a fluxos relacionados.
Peça ao Codex que explique cada identificador registrado e evite gravar segredos, dados pessoais ou conteúdo bruto nos logs unificados. Para depurar localmente, em geral bastam poucos tipos de evento.
Linhas de log representativas dão mais confiança na alteração do que a simples afirmação de que “a telemetria foi adicionada”. Peça ao Codex que inclua o predicado usado no filtro e uma breve sequência cronológica das ações para que o agente possa repetir a mesma verificação na próxima execução.
Need
Default options
Why it's needed
Need
Logs do aplicativo
Default options
Why it's needed
Com logs unificados e estruturados, o Codex pode filtrar os eventos e acompanhar apenas o fluxo em teste, sem espalhar chamadas a print pelo código.
Need
Fluxo de trabalho do agente
Default options
Why it's needed
As habilidades de telemetria e de compilação e execução do plugin se complementam. Com elas, você pode instrumentar um fluxo, iniciar o aplicativo, examinar os logs e ajustar quais eventos são registrados.
Need
Verificação em tempo de execução
Default options
Console.app e log stream --predicate ...
Why it's needed
Com um filtro de logs específico e uma amostra da saída, o agente pode compartilhar um procedimento fácil de repetir para verificar a nova instrumentação a cada execução.
| Need | Default options | Why it's needed |
|---|---|---|
| Logs do aplicativo | Logger do OSLog | Com logs unificados e estruturados, o Codex pode filtrar os eventos e acompanhar apenas o fluxo em teste, sem espalhar chamadas a print pelo código. |
| Fluxo de trabalho do agente | Plugin Build macOS Apps | As habilidades de telemetria e de compilação e execução do plugin se complementam. Com elas, você pode instrumentar um fluxo, iniciar o aplicativo, examinar os logs e ajustar quais eventos são registrados. |
| Verificação em tempo de execução | Console.app e log stream --predicate ... | Com um filtro de logs específico e uma amostra da saída, o agente pode compartilhar um procedimento fácil de repetir para verificar a nova instrumentação a cada execução. |
Use o Codex e o plugin Build macOS Apps para transformar sua ideia em um aplicativo nativo...
Use o Codex para criar aplicativos para macOS com SwiftUI e configurar um ciclo de...
Peça ao Codex para analisar seu aplicativo de IA, identificar o comportamento que você quer...