Configurazione di Cloud Logging per Python

Puoi scrivere log in Cloud Logging dalle applicazioni Python utilizzando il gestore di logging Python standard o direttamente la libreria client API Cloud Logging per Python. Quando utilizzi il gestore di logging Python standard, devi collegare un gestore Cloud Logging al gestore root Python. Questo documento illustra questo approccio.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Logging API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Logging API.

    Enable the API

  8. Prepara l'ambiente per lo sviluppo Python.

    Vai alla guida alla configurazione di Python

  9. Installare la libreria

    Per installare la libreria Cloud Logging per Python, consulta Installare la libreria client per Python. Questa libreria consente di collegare un gestore Cloud Logging al gestore root Python standard. Puoi anche utilizzare questa libreria per inviare richieste API a Cloud Logging.

    Per saperne di più sull'installazione, consulta la documentazione della libreria Cloud Logging per Python. Puoi anche segnalare i problemi utilizzando il tracker dei problemi.

    Scrivere log con l'handler di logging Python standard

    Per inviare a Cloud Logging tutte le voci di log scritte con il gestore root Python standard:

    1. Collega il gestore Cloud Logging al logger radice di Python chiamando il metodo setup_logging:

      # Imports the Cloud Logging client library
      import google.cloud.logging
      
      # Instantiates a client
      client = google.cloud.logging.Client()
      
      # Retrieves a Cloud Logging handler based on the environment
      # you're running in and integrates the handler with the
      # Python logging module. By default this captures all logs
      # at INFO level and higher
      client.setup_logging()

      Per informazioni su come configurare il gestore di logging, vedi Integrazione con la libreria standard di logging.

      Per informazioni sui parametri della funzione setup_logging, vai al client Cloud Logging e cerca setup_logging. Questa pagina, ad esempio, descrive come configurare i livelli di logging.

    2. Scrivi i dati di log utilizzando il logger radice di Python:

      # Imports Python standard library logging
      import logging
      
      # The data to log
      text = "Hello, world!"
      
      # Emits the data using the standard logging module
      logging.warning(text)

      Per impostazione predefinita, qualsiasi log il cui livello di gravità sia almeno INFO scritto dalla tua applicazione viene inviato a Cloud Logging.

      Se i messaggi vengono registrati in Logging da App Engine o Google Kubernetes Engine, il gestore li invia ai rispettivi tipi di risorse di questi ambienti; in caso contrario, i log vengono elencati nel log python nel tipo di risorsa Global.

    Scrivere log con la libreria client di Cloud Logging

    Per informazioni sull'utilizzo diretto della libreria client di Cloud Logging per Python, consulta la sezione Librerie client di Cloud Logging.

    Esegui il giorno Google Cloud

    Affinché un'applicazione possa scrivere log utilizzando la libreria Cloud Logging per Python, l'account di servizio per la risorsa sottostante deve disporre del ruolo Scrittore log (roles/logging.logWriter) IAM. La maggior parte degli ambienti Google Cloud configura automaticamente l'account di servizio predefinito in modo che disponga di questo ruolo.

    App Engine

    Cloud Logging è abilitato automaticamente per App Engine e l'account di servizio predefinito della tua app dispone delle autorizzazioni IAM per scrivere voci di log per impostazione predefinita.

    Per ulteriori informazioni, vedi Scrittura e visualizzazione dei log.

    Google Kubernetes Engine (GKE)

    GKE concede automaticamente al account di servizio predefinito il ruolo IAM Logs Writer (roles/logging.logWriter). Se utilizzi la federazione delle identità per i carichi di lavoro per GKE con questo account di servizio predefinito per consentire ai carichi di lavoro di accedere ad API Google Cloud specifiche, non è necessaria alcuna configurazione aggiuntiva. Tuttavia, se utilizzi la federazione delle identità per i carichi di lavoro per GKE con un account di servizio IAM personalizzato, assicurati che quest'ultimo disponga del ruolo Writer log (roles/logging.logWriter).

    Se necessario, puoi anche utilizzare il seguente comando per aggiungere l'ambito di accesso logging.write durante la creazione del cluster:

    gcloud container clusters create example-cluster-name \
        --scopes https://www.googleapis.com/auth/logging.write
    

    Compute Engine

    Quando utilizzi le istanze VM di Compute Engine, aggiungi l'ambito di accesso cloud-platform a ogni istanza. Quando crei una nuova istanza tramite la consoleGoogle Cloud , puoi farlo nella sezione Identità e accesso API del riquadro Crea istanza. Utilizza il service account predefinito di Compute Engine o un altro account di servizio a tua scelta e seleziona Consenti l'accesso completo a tutte le API Cloud nella sezione Identità e accesso API. Qualunque service account tu scelga, assicurati che gli sia stato concesso il ruolo Logs Writer nella sezione IAM e amministrazione della consoleGoogle Cloud .

    Esegui localmente e altrove

    Per utilizzare la libreria Cloud Logging per Python al di fuori di Google Cloud, inclusa l'esecuzione della libreria sulla tua workstation, sui computer del tuo data center o sulle istanze VM di un altro provider cloud, devi configurare le Credenziali predefinite dell'applicazione (ADC) nel tuo ambiente locale per l'autenticazione alla libreria Cloud Logging per Python.

    Per saperne di più, vedi Configurare ADC per on-premise o un altro provider cloud.

    Visualizzare i log

    Nella Google Cloud console, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

    In Esplora log devi specificare una o più risorse, ma la selezione delle risorse potrebbe non essere ovvia. Ecco alcuni suggerimenti per iniziare:

    • Se esegui il deployment dell'applicazione in App Engine o utilizzi le librerie specifiche di App Engine, imposta la risorsa su Applicazione GAE.

    • Se esegui il deployment dell'applicazione su Compute Engine, imposta la risorsa su Istanza VM GCE.

    • Se esegui il deployment dell'applicazione su Google Kubernetes Engine, la configurazione di logging del cluster determina il tipo di risorsa delle voci di log. Per una discussione dettagliata sulle soluzioni Legacy Google Cloud Observability e Google Cloud Observability Kubernetes Monitoring e su come queste opzioni influiscono sul tipo di risorsa, consulta Migrazione a Google Cloud Observability Kubernetes Monitoring.

    • Se la tua applicazione utilizza direttamente l'API Cloud Logging, la risorsa dipende dall'API e dalla tua configurazione. Ad esempio, nella tua applicazione puoi specificare una risorsa o utilizzarne una predefinita.

    • Se non vedi alcun log in Esplora log, per visualizzare tutte le voci di log, passa alla modalità di query avanzata e utilizza una query vuota.

      1. Per passare alla modalità di query avanzata, fai clic sul menu (▾) nella parte superiore di Esplora log e poi seleziona Converti in filtro avanzato.
      2. Cancella i contenuti visualizzati nella casella del filtro.
      3. Fai clic su Invia filtro.

      Puoi esaminare le singole voci per identificare le tue risorse.

    Per ulteriori informazioni, consulta la sezione Utilizzare Esplora log.