Journalisation Java

Dans l'environnement d'exécution Java, toute sortie vers STDOUT ou STDERR est propagée vers Cloud Logging. Toutefois, le niveau de gravité précis des journaux n'est pas propagé. Utilisez l'API de journalisation Java (JUL) standard pour consigner les messages et propager les niveaux de gravité des journaux corrects vers Cloud Logging.

Si vous utilisez un framework de journalisation différent, tel que SLF4J, Log4j 2 ou Apache Commons Logging, vous pouvez propager le niveau de gravité correct des journaux de l'une des façons suivantes :

  • Utilisez le format JSON de journalisation structurée pour les messages de journal, afin que le niveau de gravité soit propagé vers Cloud Logging.
  • Utilisez un pont ou un adaptateur pour envoyer des messages de journal à l'API de journalisation Java, qui les propage au format approprié. Si vous optez pour cette approche, assurez-vous qu'aucun adaptateur existant n'achemine les journaux de l'API de journalisation Java vers le framework de journalisation.

Si votre fonction fait appel à diverses bibliothèques qui utilisent des frameworks de journalisation différents, vous devez configurer chacun des frameworks. Les sections suivantes expliquent certaines options.

Spring Cloud Functions

Si vous utilisez Spring Cloud Functions avec l'adaptateur Google Cloud de Spring Cloud Functions, vous pouvez facilement générer le journal au format approprié à l'aide de Google Cloud Logging Starter de Spring Cloud et de l'appender CONSOLE_JSON, pour générer le journal au format JSON. Spring utilise par défaut SLF4J et Logback, mais vous pouvez également acheminer les journaux SLF4J vers l'API de journalisation Java. Consultez la section SLF4J pour en savoir plus.

API de journalisation Java (JUL)

Tous les environnements Java compatibles avec Cloud Functions incluent la journalisation Java avec un gestionnaire JSON qui génère le journal au format approprié. Certains frameworks Java peuvent ajouter des composants supplémentaires pour relier JUL à un autre framework de journalisation (tel que le pont jul-to-slf4j ou l'adaptateur de journalisation JDK Log4j), auquel cas les messages de journal ne sont plus correctement formatés. Si le niveau de gravité de vos messages de journal est incorrect, assurez-vous de supprimer ces ponts.

SLF4J

SLF4J peut transmettre des journaux à l'API de journalisation Java via la liaison du framework de journalisation slf4j-jdk14. Consultez la documentation de SLF4J pour en savoir plus. Assurez-vous de ne pas utiliser le pont jul-to-slf4j.

Logback

Logback ne dispose pas d'un appender qui achemine les messages de journal vers l'API de journalisation Java. Cependant, Logback est généralement utilisé avec l'API SFL4J, ce qui vous permet de passer de la mise en œuvre de l'enregistreur SLF4J à l'API de journalisation Java.

Log4j 2

Log4j 2 ne dispose pas d'un adaptateur direct qui achemine les messages de journal vers l'API de journalisation Java. Si vous utilisez Log4j 2, vous devez d'abord acheminer les messages vers SLF4J à l'aide d'un adaptateur Log4J 2 vers SLF4J, puis configurer SLF4J pour exploiter la mise en œuvre de l'API de journalisation Java. Assurez-vous de ne pas utiliser l'adaptateur de journalisation JDK Log4j.

Apache Commons Logging (JCL)

Apache Commons Logging dispose d'un adaptateur de l'API de journalisation Java. Configurez Commons Logging pour utiliser Jdk14Logger. Consultez la page Configuration d'Apache Commons Logging pour en savoir plus.