Need
アプリのログ記録
Default options
Why it's needed
構造化された統合ログを使えば、コードの各所に print 文を書かずに、Codex が必要なイベントだけを抽出して動作を確認できます。
.md to the page URL.
Codex use case
Codex を使って Mac アプリの機能を 1 つ選び、Logger で操作を記録できるようにします。アプリを実行し、操作結果を統合ログで確認します。
Codex と Build macOS Apps プラグインを使い、ウインドウやサイドバーの操作、コマンドの実行、同期処理などの要所に Logger イベントをいくつか追加します。アプリを実行し、操作に応じて意図した処理が実行されたことをコンソールまたは log stream で確認します。
Codex を使って Mac アプリの機能を 1 つ選び、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` で構造化ログを記録できるようにします。アプリを起動して対象の画面操作を一通り行い、出力されたイベントをコンソールまたは `log stream` で確認します。 |
Mac アプリで「何かが起きた」ことは分かっても、コードレビューだけでは何が起きたのか特定できない場合があります。そんなときは Codex に、調べたい挙動を一つ選び、判断の手がかりになるイベントをいくつか統合ログに記録するよう依頼します。続けてアプリを起動し、その挙動を引き起こす操作を行い、コンソールまたは log stream で想定どおりのイベントが発生したか確認してもらいます。
この一連の作業には Build macOS Apps プラグインを使います。プラグインの macOS テレメトリスキルは、計測に必要な作業を最小限に絞っています。Apple の Logger を使い、対象が分かりやすいサブシステムとカテゴリの組み合わせを選びます。操作の開始・終了と状態遷移を記録し、機密性の高いデータはログに含めません。計測コードが正しく動くと決めつけず、ローカルでアプリをビルドして実行し、イベントを確認します。
適切なログがあれば、Codex はパッチを適用するたびに同じ手順で結果を検証できます。ウィンドウやメニュー操作、同期状態の変化を一つずつ人の目で確認してもらう代わりに、エージェントがアプリを起動して対象の操作を試し、ログを絞り込んで確認します。その結果をもとに、コードのどこを次に変更するか判断できます。
特に役立つのは、次の 3 つの進め方です。
状態が変わるたびにログを出力するコードを恒久的に組み込むのではなく、機能ごとにロガーを一つ用意するよう 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 は、出力量の多いローカル状態の詳細を調べるために使います。こうしたログは、作業を終える前に削除したり、ログレベルを下げたりできます。サインポストを追加するのは、特定の区間の所要時間を測定するときだけです。
Logger の呼び出しを追加したら、Codex にアプリを起動して計測対象の操作を実行するよう依頼します。検証に使ったコンソールのフィルタまたは log stream の述語をそのまま示し、代表的なログも 1〜2 行添えてもらいます。
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 プラグインを使って、アプリのアイデアを `NavigationSplitView` ベースの Mac...
Codex を使って SwiftUI で macOS アプリを開発し、シェルからビルドと起動を繰り返せるようにします。開発が進んだら、Mac...
AI アプリケーションを調べて評価対象の動作を特定し、実行可能な Promptfoo 評価スイートを追加するよう Codex に依頼します。