Protokollierung

Alle Claude Code Aktivitäten werden in der Datenbank ki_dev.protokoll protokolliert.

Tabellen-Schema

protokoll

Spalte Typ Beschreibung
idBIGINTPrimary Key
timestampDATETIME(6)Event-Zeitpunkt
request_ipVARCHAR(45)Client-IP (aus SSH_CLIENT)
client_nameVARCHAR(255)User (aus $USER)
requestTEXTRequest-Daten (sanitized)
request_timestampDATETIME(6)Request-Zeitpunkt (Microseconds)
responseTEXTResponse-Daten (sanitized)
response_timestampDATETIME(6)Response-Zeitpunkt
duration_msINT UNSIGNEDDauer in Millisekunden
tokens_inputINT UNSIGNEDGeschätzte Input-Tokens
tokens_outputINT UNSIGNEDGeschätzte Output-Tokens
tokens_totalINT UNSIGNEDGesamt-Tokens
model_nameVARCHAR(255)Verwendetes Modell
statusENUM'pending', 'completed', 'error'
error_messageTEXTFehlermeldung bei status='error'

file_backup_history

Spalte Typ Beschreibung
idINTPrimary Key
file_pathVARCHAR(512)Absoluter Dateipfad
file_contentLONGTEXTVollständiger Dateiinhalt
content_hashCHAR(64)SHA256-Hash
file_sizeINTDateigröße in Bytes
versionINTVersion pro Datei
change_typeENUM'created', 'modified', 'deleted'
changed_atTIMESTAMPBackup-Zeitpunkt
changed_byVARCHAR(100)claude-code-hook
reasonTEXTBackup-Grund
diff_summaryTEXTZusammenfassung der Änderungen
affected_entitiesLONGTEXTBetroffene Code-Entitäten (JSON)

Event-Typen im Request

UserPromptSubmit

{
  "event": "UserPromptSubmit",
  "prompt": "Erstelle eine neue Funktion..."
}

PreToolUse

{
  "event": "PreToolUse",
  "tool_name": "Edit",
  "tool_input": {
    "file_path": "/var/www/.../file.php",
    "old_string": "...",
    "new_string": "..."
  }
}

PostToolUse (Response)

{
  "tool_response": {
    "success": true,
    "message": "File updated"
  }
}

Sicherheit: Data Sanitization

Folgende Daten werden automatisch redacted:

Key-Patterns

Value-Patterns

Truncation

Felder > 10.000 Zeichen werden gekürzt mit Hash-Suffix:

...content... [TRUNCATED-a1b2c3d4]

Abfrage-Beispiele

Letzte Tool-Aufrufe

SELECT 
    timestamp,
    JSON_EXTRACT(request, '$.tool_name') as tool,
    duration_ms,
    status
FROM protokoll 
WHERE JSON_EXTRACT(request, '$.event') = 'PreToolUse'
ORDER BY id DESC 
LIMIT 10;

Token-Verbrauch pro Tag

SELECT 
    DATE(timestamp) as tag,
    SUM(tokens_total) as tokens,
    COUNT(*) as requests
FROM protokoll 
GROUP BY DATE(timestamp)
ORDER BY tag DESC;

Datei-Versionen

SELECT version, changed_at, file_size, content_hash
FROM file_backup_history 
WHERE file_path = '/var/www/.../Controller.php'
ORDER BY version DESC;