Need
App-Protokollierung
Default options
Why it's needed
Strukturiertes Unified Logging bietet Codex eine gezielte, filterbare Feedbackschleife, ohne die Codebasis mit zahllosen Aufrufen von print zu überladen.
.md to the page URL.
Codex use case
Nutze Codex, um eine Mac-Funktion mit Logger zu instrumentieren, führe die App aus und prüfe anhand der Unified-Logging-Daten, ob die Aktion ausgelöst wurde.
Nutze Codex und das Plug-in „Build macOS Apps“, um für Fenster, Seitenleisten, Befehle oder Synchronisierungsabläufe einige wenige aussagekräftige Ereignisse mit Logger hinzuzufügen. Führe dann die App aus und weise anhand der Konsole oder mit log stream nach, dass die richtigen Aktionen ausgelöst wurden.
Nutze Codex, um eine Mac-Funktion mit Logger zu instrumentieren, führe die App aus und prüfe anhand der Unified-Logging-Daten, ob die Aktion ausgelöst wurde.
Nutze Codex und das Plug-in „Build macOS Apps“, um für Fenster, Seitenleisten, Befehle oder Synchronisierungsabläufe einige wenige aussagekräftige Ereignisse mit Logger hinzuzufügen. Führe dann die App aus und weise anhand der Konsole oder mit log stream nach, dass die richtigen Aktionen ausgelöst wurden.
Nutze Codex und das Plug-in „Build macOS Apps“, um für Fenster, Seitenleisten, Befehle oder Synchronisierungsabläufe einige wenige aussagekräftige Ereignisse mit Logger hinzuzufügen. Führe dann die App aus und weise anhand der Konsole oder mit log stream nach, dass die richtigen Aktionen ausgelöst wurden.
Weiterführende Links
| Skill | Why use it |
|---|---|
| Build macOS Apps | Nutze die Skills für macOS-Telemetrie sowie zum Bauen und Ausführen, um eine strukturierte Instrumentierung mit `OSLog` hinzuzufügen, die App zu starten, den UI-Pfad zu durchlaufen und die ausgegebenen Ereignisse in der Konsole oder mit `log stream` zu überprüfen. |
Dieser Anwendungsfall eignet sich für Abläufe in Mac-Apps, bei denen „etwas ist passiert“ zu vage ist, um Fehler allein durch eine Codeüberprüfung zu finden. Lass Codex für ein bestimmtes Verhalten einige wenige aussagekräftige Einträge im Unified Logging ergänzen, die App ausführen und das Verhalten auslösen. Prüfe anschließend in der Konsole oder mit log stream, ob die erwarteten Ereignisse ausgelöst wurden.
Verwende für diese Schleife das Plug-in „Build macOS Apps“. Sein Skill für macOS-Telemetrie ist bewusst schlank gehalten: Verwende Apples Logger, wähle ein eindeutiges Paar aus Subsystem und Kategorie, protokolliere Aktionsgrenzen und Zustandsübergänge, vermeide sensible Nutzdaten und prüfe das Ereignis, nachdem du die App lokal gebaut und ausgeführt hast, statt davon auszugehen, dass die Instrumentierung korrekt eingebunden ist.
Aussagekräftige Logs bieten Codex nach jedem Patch eine reproduzierbare Feedbackschleife. Statt dass du jedes Fenster, jede Menüaktion oder jeden Synchronisierungsübergang manuell prüfen musst, kann der Agent die App ausführen, den Ablauf durchspielen, gefilterte Logs auswerten und anhand der Ergebnisse entscheiden, welche Codeänderung als Nächstes erforderlich ist.
Das ist besonders bei drei agentischen Schleifen nützlich:
Lass Codex für jeden Funktionsbereich je einen Logger einrichten, statt für jede Zustandsänderung eine dauerhafte Log-Zeile anzulegen. Funktionskategorien wie Windowing, Commands, MenuBar, Sidebar, Sync oder Import erleichtern es erheblich, die Logs beim nächsten Debugging-Durchlauf zu filtern.
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
}
Verwende info für knappe Aktions- und Lebenszyklusereignisse, die langfristig nützlich bleiben sollen, und debug für umfangreichere lokale Zustandsdetails, die vor Abschluss der Aufgabe entfernt oder herabgestuft werden können. Füge Signposts nur hinzu, wenn du eine Zeitspanne misst, und nicht standardmäßig.
Es reicht nicht, nur Aufrufe von Logger hinzuzufügen. Lass Codex die App ausführen, den instrumentierten Ablauf auslösen und dir den genauen Filter für die Konsole oder das verwendete Prädikat für log stream sowie ein oder zwei repräsentative Log-Zeilen nennen.
log stream --style compact --predicate 'subsystem == "com.example.app" && category == "Sidebar"'
Wenn ein erwartetes Ereignis nicht erscheint, lass Codex die Protokollierung näher an den vermuteten Kontrollpfad verschieben, denselben Ablauf erneut ausführen und so lange weiterarbeiten, bis aus den Logs hervorgeht, was passiert ist. Wenn sich die Aufgabe zu einer Absturz- oder Backtrace-Analyse entwickelt, nutze stattdessen den Debugging-Workflow des Plug-ins zum Bauen und Ausführen und konzentriere die Telemetrie weiterhin auf die Aktionsgrenzen.
Lass Codex bei länger dauernden oder sporadischen Fehlern einen gezielt gefilterten Log-Stream in einer kleinen lokalen Trace-Datei speichern, die Zeitleiste zusammenfassen und dieses Artefakt im Workspace ablegen. So kann ein späterer Codex-Durchlauf dieselben Belege prüfen, ohne die gesamte Sitzung aus dem Gedächtnis rekonstruieren zu müssen. Das erleichtert das Debugging über mehrere Durchläufe hinweg, wenn ein Agenten-Durchlauf einen Trace erfassen und ein weiterer das Verhalten vor und nach einem Patch vergleichen soll.
Das funktioniert auch gut, wenn du einen Teil der Sitzung selbst steuern musst. Lass Codex die App in einer Debugging-Schleife mit geeigneter Protokollierung starten und eine gefilterte Erfassung beginnen. Codex wartet, während du das Problem manuell reproduzierst, und liest danach die gespeicherte Trace-Datei ein.
Konzentriere dich zunächst auf eine Seitenleiste, ein Fenster, einen Befehl oder einen Synchronisierungspfad, damit die Log-Sequenz leicht zu prüfen bleibt. Sobald dieser Pfad zuverlässig funktioniert, kann Codex dasselbe Muster auf benachbarte Abläufe ausweiten.
Lass Codex jede protokollierte Kennung erklären und weder Geheimnisse noch personenbezogene Daten oder Rohinhalte im Unified Logging erfassen. Ein kleiner Ereigniswortschatz reicht für lokales Debugging meist aus.
Repräsentative Log-Zeilen schaffen deutlich mehr Vertrauen in die Änderung als die Aussage „Telemetrie wurde hinzugefügt“. Lass Codex das Filterprädikat und eine kurze Zeitleiste der Aktionen aufnehmen, damit der nächste Agenten-Durchlauf dieselbe Prüfschleife wiederverwenden kann.
Need
Default options
Why it's needed
Need
App-Protokollierung
Default options
Why it's needed
Strukturiertes Unified Logging bietet Codex eine gezielte, filterbare Feedbackschleife, ohne die Codebasis mit zahllosen Aufrufen von print zu überladen.
Need
Agenten-Workflow
Default options
Why it's needed
Die Skills des Plug-ins für Telemetrie sowie zum Bauen und Ausführen sind aufeinander abgestimmt: Instrumentiere einen Ablauf, starte die App, prüfe die Logs und optimiere anschließend die Auswahl der Ereignisse.
Need
Laufzeitprüfung
Default options
Console.app und log stream --predicate ...
Why it's needed
Ein konkreter Log-Filter samt Beispielausgabe ermöglicht dem Agenten eine reproduzierbare Übergabe und erleichtert es, die neue Instrumentierung über mehrere Durchläufe hinweg zu überprüfen.
| Need | Default options | Why it's needed |
|---|---|---|
| App-Protokollierung | OSLog Logger | Strukturiertes Unified Logging bietet Codex eine gezielte, filterbare Feedbackschleife, ohne die Codebasis mit zahllosen Aufrufen von print zu überladen. |
| Agenten-Workflow | Plug-in „Build macOS Apps“ | Die Skills des Plug-ins für Telemetrie sowie zum Bauen und Ausführen sind aufeinander abgestimmt: Instrumentiere einen Ablauf, starte die App, prüfe die Logs und optimiere anschließend die Auswahl der Ereignisse. |
| Laufzeitprüfung | Console.app und log stream --predicate ... | Ein konkreter Log-Filter samt Beispielausgabe ermöglicht dem Agenten eine reproduzierbare Übergabe und erleichtert es, die neue Instrumentierung über mehrere Durchläufe hinweg zu überprüfen. |
Nutze Codex und das Plug-in Build macOS Apps, um aus einer App-Idee eine native Desktop-App...
Entwickle mit Codex macOS-Apps mit SwiftUI, richte einen primär über die Shell ausgeführten...
Lass Codex deine KI-Anwendung untersuchen, das zu evaluierende Verhalten ermitteln und eine...