Logging Java

Nel runtime Java, qualsiasi output in STDOUT o STDERR viene propagato a Cloud Logging. Tuttavia, il livello di gravità dei log granulare non viene propagato. Utilizza lo standard API Java Logging (JUL) per registrare i messaggi e propagare i livelli di gravità dei log corretti in Cloud Logging.

Se utilizzi un framework di logging diverso, ad esempio SLF4J, Log4j 2 o Apache Commons Logging, puoi propagare il log corretto livello di gravità in uno dei seguenti modi:

  • Formatta i messaggi di log nel formato JSON di logging strutturato in modo che il livello di gravità venga propagato a Cloud Logging.
  • Usa un bridge/adattatore per inviare messaggi di log all'API Java Logging, che propaga già i messaggi di log nel formato corretto. Se scegli questo assicurati che non esista un adattatore che instrada già l'API Java Logging nel framework di logging.

Se la funzione utilizza librerie diverse e le librerie utilizzano di logging, dovrai configurare ognuno di essi in uso. Le sezioni seguenti illustrano alcune delle varie opzioni disponibili.

Funzione Spring Cloud Run

Se utilizzi la funzione Spring Cloud Run con le funzioni Spring Cloud Run di Google Cloud dell'adattatore, puoi eseguire l'output dell'accesso nel formato corretto utilizzando Google Cloud Logging Starter di Spring Cloud e Appendice CONSOLE_JSON per restituire il segno in formato JSON. Per impostazione predefinita, Spring utilizza SLF4J e Logback, ma puoi anche inoltrare i log SLF4J all'API Java Logging. Per ulteriori dettagli, consulta la sezione SLF4J.

API Java Logging (JUL)

Tutti supportati Funzioni di Cloud Run Java ambienti includi il logging Java con un gestore JSON che restituisce il log nel codice formato. Alcuni framework Java potrebbero aggiungere componenti aggiuntivi per collegare JUL a un altro framework di logging (ad esempio jul-to-slf4j bridge o Log4j JDK Logging Adapter), nel qual caso i messaggi di log non saranno più formattati correttamente. Se i messaggi di log non hanno livelli di gravità corretti, assicurati che i ponti vengano rimossi.

SLF4J

SLF4J può scrivere i log nel API Java Logging utilizzando l'associazione del framework di logging slf4j-jdk14. Per ulteriori dettagli, consulta la documentazione di SLF4J. Assicurati di non avere jul-to-slf4j ponte.

Logback

Il logback non prevede che instrada i messaggi di log all'API Java Logging. Tuttavia, Logback è solitamente utilizzato con l'API SFL4J, quindi puoi passare Implementazione del logger SLF4J nell'API Java Logging.

Log4j 2

Log4j 2 non dispone di un adattatore diretto che instrada i messaggi di log all'API Java Logging. Se utilizzi Log4j 2, devi prima inoltrare i messaggi a SLF4J utilizzando l' adattatore Log4J 2 a SLF4J, quindi configurare SLF4J per utilizzare l'implementazione dell'API Java Logging. Assicurati di non l'adattatore di registrazione JDK di Log4j.

Logging Apache Commons (JCL)

Apache Commons Logging dispone di un adattatore API Java Logging. Configura Commons Logging per utilizzare Jdk14Logger. Per ulteriori informazioni, consulta la pagina Configurazione di Apache Commons Logging.