Logging Java
Nel runtime Java, qualsiasi output in STDOUT
o STDERR
viene propagato in Cloud
Logging. Tuttavia, la gravità dei log granulare
livello non viene propagato. Utilizza l'API Java Logging (JUL) standard 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.
- Utilizza un bridge/adattatore per inviare i messaggi di log all'API Java Logging, che già propaga i messaggi di log nel formato corretto. Se scegli questo approccio, assicurati che non esista già un'entità di adattamento che inoltri già dall'API Java Logging al framework di logging.
Se la funzione utilizza librerie diverse e queste ultime utilizzano diversi framework di logging, dovrai configurare ciascuno dei framework di logging utilizzati. Le sezioni seguenti illustrano alcune delle varie opzioni.
Funzione Spring Cloud Run
Se utilizzi la funzione Spring Cloud Run con l'adattatore Google Cloud per le funzioni Spring Cloud Run, puoi stampare il log nel formato corretto utilizzando lo starter di Google Cloud Logging di Spring Cloud e l'appender CONSOLE_JSON
per stampare il log in formato JSON. Spring utilizza SLF4J e Logback
ma puoi anche instradare 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 framework di logging diverso (ad esempio bridge jul-to-slf4j o Adattatore di logging JDK di Log4j), nel qual caso vengono registrati i messaggi non saranno più formattati correttamente. Se i messaggi di log non contengono i livelli di gravità corretti, assicurati che questi ponti siano 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 il jul-to-slf4j
ponte.
Logback
Logback non ha un appender che inoltra i messaggi di log all'API Java Logging. Tuttavia, Logback viene solitamente utilizzato con l'API SFL4J, quindi puoi passare dall'implementazione del logger SLF4J all'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 avere l'adattatore di logging Log4j JDK.
Apache Commons Logging (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.