Skip to content

Raccolta dei Log

Quando si segnala un bug, un bundle di log fornisce ai manutentori le informazioni necessarie per diagnosticare il problema senza dover chiedere dettagli in modo iterativo.

Bundle Rapido

Il modo più veloce per creare un bundle di log:

bash
triggerfish logs bundle

Questo crea un archivio contenente tutti i file di log da ~/.triggerfish/logs/:

  • Linux/macOS: triggerfish-logs.tar.gz
  • Windows: triggerfish-logs.zip

Se l'archiviazione fallisce per qualsiasi motivo, ripiega sulla copia dei file di log grezzi in una directory che è possibile comprimere manualmente.

Cosa Contiene il Bundle

  • triggerfish.log (file di log corrente)
  • Da triggerfish.1.log a triggerfish.10.log (backup ruotati, se esistono)

Il bundle non contiene:

  • Il file di configurazione triggerfish.yaml
  • Chiavi segrete o credenziali
  • Il database SQLite
  • SPINE.md o TRIGGER.md

Raccolta Manuale dei Log

Se il comando bundle non è disponibile (versione precedente, Docker, ecc.):

bash
# Trovare i file di log
ls ~/.triggerfish/logs/

# Creare un archivio manualmente
tar czf triggerfish-logs.tar.gz ~/.triggerfish/logs/

# Docker
docker cp triggerfish:/data/logs/ ./triggerfish-logs/
tar czf triggerfish-logs.tar.gz triggerfish-logs/

Aumentare il Dettaglio dei Log

Per impostazione predefinita, i log sono a livello INFO. Per catturare più dettagli per una segnalazione di bug:

  1. Impostare il livello di log su verbose o debug:

    bash
    triggerfish config set logging.level verbose
    # oppure per il massimo dettaglio:
    triggerfish config set logging.level debug
  2. Riprodurre il problema

  3. Raccogliere il bundle:

    bash
    triggerfish logs bundle
  4. Reimpostare il livello su normal:

    bash
    triggerfish config set logging.level normal

Dettaglio dei Livelli di Log

LivelloCosa cattura
quietSolo errori
normalErrori, avvisi, info (predefinito)
verboseAggiunge messaggi di debug (chiamate ai tool, interazioni con i provider, decisioni di classificazione)
debugTutto inclusi messaggi a livello trace (dati grezzi del protocollo, cambiamenti di stato interni)

Attenzione: Il livello debug genera molto output. Utilizzarlo solo quando si sta riproducendo attivamente un problema, poi ripristinare.

Filtraggio dei Log in Tempo Reale

Durante la riproduzione di un problema, è possibile filtrare il flusso di log in tempo reale:

bash
# Mostrare solo gli errori
triggerfish logs --level ERROR

# Mostrare avvisi e superiori
triggerfish logs --level WARN

Su Linux/macOS, questo utilizza tail -f nativo con filtraggio. Su Windows, utilizza Get-Content -Wait -Tail di PowerShell.

Formato dei Log

Ogni riga di log segue questo formato:

[2026-02-17T14:30:45.123Z] [INFO] [gateway] Gateway WebSocket server started on port 18789
  • Timestamp: ISO 8601 in UTC
  • Livello: ERROR, WARN, INFO, DEBUG o TRACE
  • Componente: Quale modulo ha generato il log (es. gateway, anthropic, telegram, policy)
  • Messaggio: Il messaggio di log con contesto strutturato

Cosa Includere in una Segnalazione di Bug

Insieme al bundle di log, includere:

  1. Passaggi per riprodurre. Cosa si stava facendo quando il problema si è verificato?
  2. Comportamento atteso. Cosa sarebbe dovuto succedere?
  3. Comportamento effettivo. Cosa è successo invece?
  4. Informazioni sulla piattaforma. SO, architettura, versione di Triggerfish (triggerfish version)
  5. Estratto della configurazione. La sezione pertinente del triggerfish.yaml (oscurare i secret)

Vedere Segnalazione degli Issue per la checklist completa.

Informazioni Sensibili nei Log

Triggerfish sanitizza i dati esterni nei log racchiudendo i valori nei delimitatori << e >>. Le chiavi API e i token non dovrebbero mai apparire nell'output dei log. Tuttavia, prima di inviare un bundle di log:

  1. Scansionare alla ricerca di qualsiasi cosa che non si desidera condividere (indirizzi email, percorsi di file, contenuto dei messaggi)
  2. Oscurare se necessario
  3. Annotare nell'issue che il bundle è stato oscurato

I file di log contengono il contenuto dei messaggi delle conversazioni. Se le conversazioni contengono informazioni sensibili, oscurare quelle porzioni prima della condivisione.