# CFN Docker Mode Logs

This directory contains logs for Docker mode CFN Loop execution.

## Directory Structure

```
logs/docker-mode/{task-id}/
├── logging-config.json           # Logging configuration
├── containers/                   # Container logs
│   ├── {agent-id}.stdout.log    # Container stdout
│   ├── {agent-id}.stderr.log    # Container stderr
│   └── {agent-id}.exit.json     # Container exit event
├── coordination/                 # Coordination logs
│   ├── redis-events.log         # Redis coordination events
│   └── lifecycle-events.log     # Agent lifecycle events
├── metrics/                      # Performance metrics (future)
└── scripts/                      # Helper scripts
    ├── capture-container-logs.sh
    ├── log-redis-event.sh
    ├── log-lifecycle-event.sh
    ├── query-logs.sh
    └── export-audit-trail.sh
```

## Usage Examples

### Query Logs
```bash
# View all logs
./query-logs.sh all

# View only container logs
./query-logs.sh containers

# View only errors
./query-logs.sh errors

# View exit codes
./query-logs.sh exits

# View failed containers
./query-logs.sh failed

# View Redis events
./query-logs.sh redis
```

### Export Audit Trail
```bash
# Export to default file
./export-audit-trail.sh

# Export to custom file
./export-audit-trail.sh /tmp/audit-trail.json
```

### Capture Container Logs (Automatic)
This script is called automatically by spawn-agent.sh when logging is enabled.
```bash
./capture-container-logs.sh <container-id> <agent-id> <log-dir>
```

## Integration with spawn-agent.sh

To enable automatic log capture, add this to spawn-agent.sh:

```bash
# After container spawn
if [[ -f "logs/docker-mode/${TASK_ID}/capture-container-logs.sh" ]]; then
    logs/docker-mode/${TASK_ID}/capture-container-logs.sh \
        "$CONTAINER_ID" "$AGENT_ID" "logs/docker-mode/${TASK_ID}" &
fi
```
