I registri sono necessari per risolvere gli errori dei documenti, ma non è necessario registrare il testo completo.

I registri sono necessari per individuare gli errori di traduzione, ma non è necessario stampare l'intero contratto, il numero ID o il token di download. Il registro dovrebbe rispondere a "quale attività, in quale passaggio e perché non è riuscita" anziché diventare una seconda raccolta documenti priva di gestione delle autorizzazioni.

I registri sono necessari per risolvere gli errori di traduzione dei documenti, ma non è necessario che contengano il testo completo del contratto, il numero ID o il token di download. Questo articolo spiega come fare in modo che il registro risponda "quale attività non è riuscita, in quale passaggio e perché" senza copiare i documenti del cliente nel registro.

I lettori idonei sono gli sviluppatori e il personale operativo e di manutenzione responsabile dei servizi di traduzione dei documenti, dell'aggancio delle interfacce di traduzione o del mantenimento dei registri in background. Dopo la lettura, è possibile progettare una serie di campi della whitelist, verificare che il registro non riporti il testo originale e impostare il periodo di conservazione e l'ambito di accesso per la risoluzione dei problemi.

Gli esempi utilizzano campioni sintetici per dimostrare i metodi di elaborazione e il codice è stato controllato in un ambiente isolato, ma ciò non rappresenta una garanzia di tutti i file reali o delle prestazioni del prodotto. Prima di elaborare documenti importanti, conservare gli originali e rivederli rispettando i limiti e gli elementi di accettazione riportati di seguito.

Cosa deve essere registrato nel registro di risoluzione dei problemi? Conclusione di una frase

Il registro registra solo i campi consentiti come ID attività, fase, categoria di errore e consumo di tempo, ma non registra il contenuto e le credenziali del documento.

la tua situazionePratiche consigliatemotivo
È necessario sapere quale attività non è riuscitaRegistrazione di un ID attività interno casualeCapacità di individuare i problemi senza esporre nomi o percorsi di file utente
È necessario determinare in quale fase si trova la cartaRegistra il nome d'arte e il tempo impiegatoNon è necessario alcun testo sorgente e traduzione
La richiesta è stata respinta dalla società a monteRegistra le categorie di errore normalizzateIl contenuto completo della richiesta di autenticazione di prima classe non deve essere inserito nel registro
È necessario tornare all'originale per la risoluzione dei problemiUtilizzo di riferimenti all'interno di un sistema controllatoI collegamenti che possono essere scaricati pubblicamente in modo permanente corrono il rischio di essere divulgati

Inizia con i campi che possono essere registrati

La lista nera può facilmente perdere nuovi campi sensibili. Un approccio più prudente consiste nell'emettere solo i campi progettati, ad esempio:

  • ID attività interna
  • Fase di lavorazione
  • categoria di errore
  • richiede tempo

L'esempio di sintesi seguente utilizza una proiezione whitelist in modo che il testo completo e i token nell'input non vengano inseriti nel log.

Il registro di verifica non ha riportato in evidenza il testo originale.

import io
import json
import logging

ALLOWED = ("job_id", "stage", "error_code", "elapsed_ms")
def log_record(data):
    return {key: data[key] for key in ALLOWED if key in data}

stream = io.StringIO()
logger = logging.getLogger("synthetic-document-job")
logger.handlers.clear()
logger.propagate = False
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(stream)
logger.addHandler(handler)
event = {"job_id": "demo-12", "stage": "parse", "error_code": "BAD_CONTAINER",
         "elapsed_ms": 42, "document_text": "synthetic confidential clause",
         "access_token": "synthetic-secret"}
logger.info(json.dumps(log_record(event), sort_keys=True))
logged = json.loads(stream.getvalue())
assert logged["error_code"] == "BAD_CONTAINER"
assert "document_text" not in logged
assert "synthetic-secret" not in stream.getvalue()
assert set(logged) <= set(ALLOWED)
logger.removeHandler(handler)

L'esempio modifica solo il demo logger omonimo. Non è consigliabile cancellare il gestore globale dell'applicazione nella libreria aziendale. I valori dei campi devono ancora essere verificati per lunghezza e tipo. Se inserisci il testo completo dell'utente in error_code, il solo nome della whitelist non ti salverà.

ID di associazione al posto dei contenuti sensibili

Nella tabella seguente sono elencati i requisiti comuni durante la risoluzione dei problemi, nonché i record consigliati e non consigliati.

Problemi da approfondireRecord consigliatiRegistrazione non consigliata
Quale attività non è riuscitaID attività interna casualeNome e percorso completo del file utente
Quale fase richiede tempo?Fasi e richiede tempoOgni testo sorgente e traduzione
Perché l'upstream ha rifiutato?Categorie di errore normalizzateCompleta la richiesta con l'intestazione di autenticazione
Come trovare gli originaliRiferimenti all'interno dei sistemi controllatiLink per il download permanentemente pubblico

Il periodo di conservazione è altrettanto importante quanto l'ambito di accesso

Anche se nel registro non è presente testo, la combinazione di durata dell'attività, lingua e dimensione del file potrebbe rivelare informazioni aziendali. I registri dovrebbero essere accompagnati da controlli di accesso, periodi di conservazione e procedure di cancellazione.

Durante la risoluzione dei problemi, aumentare temporaneamente il livello di registro e chiarire quando ripristinare per evitare di lasciare la modalità debug nell'ambiente di produzione per lungo tempo.

L'integrazione della traduzione può anche avere registri chiari e contenuti

Quando ti connetti a OmniDoc (portale del prodotto), devi solo registrare l'associazione tra attività locali e attività remote. I file caricati dagli utenti non devono essere copiati nel registro per comodità di risoluzione dei problemi.

Un buon report del problema descrive la fase di errore e le condizioni di ricorrenza, mantenendo il flusso dei documenti del cliente solo nei percorsi di elaborazione autorizzati.

Riferimenti: Python logging.

📊 Confronto fondamentale

Modovantaggiorischio
lista neraIl metodo di scrittura è semplice e facile da usare.È facile perdere nuovi campi sensibili
lista biancaEmetti solo i campi progettati con confini chiariI campi devono essere pianificati in anticipo e verificati la lunghezza e il tipo di valori dei campi

🎯Quale metodo è adatto a te?

Se hai bisogno di individuare un'attività di traduzione

Registrazione di ID attività interne casuali e fasi di errore, senza registrazione di nomi file o percorsi completi degli utenti.

Se vuoi gestire gli errori segnalati dall'interfaccia upstream

Registrazione di classi di errore normalizzate, non registrazione di richieste complete con intestazioni di autenticazione.

Se stai risolvendo problemi online

Aumenta temporaneamente il livello di registro e ripristinalo immediatamente dopo la risoluzione del problema.

Se vuoi progettare campi di registro

Preferisci inserire nella whitelist e verificare la lunghezza e il tipo dei valori dei campi.

❓ Domande frequenti (FAQ)

1. È possibile registrare nel registro il nome completo del file dell'utente?

Non raccomandato. Non è consigliabile registrare il nome e il percorso completi del file ed è invece possibile utilizzare la correlazione casuale dell'ID attività interna.

2. Perché non è consigliabile utilizzare la lista nera per filtrare i campi sensibili?

La lista nera perde facilmente i campi sensibili appena emersi, mentre la lista bianca restituisce solo i campi progettati, il che è più sicuro.

3. È necessario gestire solo il tempo dell'attività e la dimensione del file?

Bisogno. La combinazione di queste informazioni può anche rivelare informazioni aziendali e i registri dovrebbero essere accompagnati da controlli di accesso, periodi di conservazione e procedure di eliminazione.

4. I registri di debug possono rimanere attivi per un lungo periodo durante la risoluzione dei problemi?

Non raccomandato. Dopo aver aumentato temporaneamente il livello di log, è necessario sapere quando ripristinarlo per evitare di lasciare per lungo tempo la modalità debug nell'ambiente di produzione.

5. È possibile cancellare il gestore globale nella libreria aziendale?

Non raccomandato. L'esempio modifica solo il demo logger con nome stesso e il gestore globale dell'applicazione non deve essere cancellato nella libreria aziendale.

📝 Riepilogo

Quando si risolvono gli errori di traduzione, i registri dovrebbero rispondere ad attività, fasi e ragioni anziché salvare il contenuto del documento. Utilizza campi della whitelist, riferimenti controllati e periodi di conservazione chiari per bilanciare l'efficienza della risoluzione dei problemi e la sicurezza dei documenti.

Provalo subito: carica il documento per iniziare la traduzione, mantenendo il layout originale

Aggiornato il 2026-11-13