Event Log Access
AOF uses date-rotated event logs for audit trail and observability.
File Naming Convention
Event logs are written to:
~/.openclaw/aof/events/YYYY-MM-DD.jsonlExample:
~/.openclaw/aof/events/2026-02-08.jsonlTailing Live Events
To tail today’s event log:
# Get today's dateTODAY=$(date +%Y-%m-%d)
# Tail the logtail -f ~/.openclaw/aof/events/${TODAY}.jsonlFinding the Latest Event Log
To find and tail the most recent event log (handles date boundaries):
# Find latest event logLATEST=$(ls -t ~/.openclaw/aof/events/*.jsonl 2>/dev/null | head -1)
# Tail ittail -f "$LATEST"One-liner for Health Checks
tail -5 $(ls -t ~/.openclaw/aof/events/*.jsonl | head -1)Event Log Format
Each line is a JSON object with:
eventId: Monotonic event countertype: Event type (task.created, task.transitioned, etc.)timestamp: ISO-8601 timestampactor: Agent or system that caused the eventtaskId: Optional task ID (for task-related events)payload: Event-specific data
Example:
{"eventId":42,"type":"task.transitioned","timestamp":"2026-02-08T20:15:30.123Z","actor":"scheduler","taskId":"TASK-2026-02-08-001","payload":{"from":"ready","to":"in-progress","reason":"lease acquired"}}Rotation Policy
- New file created daily (automatic)
- Old logs persist indefinitely (manual cleanup required)
- No automatic archival or compression (future enhancement)
Backward Compatibility Note
DO NOT hardcode events.jsonl in scripts or documentation. Always use the date-based pattern or glob to find the latest file.
If backward compatibility is required, create a symlink:
cd ~/.openclaw/aof/eventsln -sf $(date +%Y-%m-%d).jsonl events.jsonlHowever, this symlink is not maintained automatically and may point to a stale file after date rollover.