Vous pouvez écrire des journaux dans Cloud Logging depuis des applications Java grâce à l'appender Logback, à un gestionnaire java.util.logging, ou en utilisant directement la bibliothèque Cloud Logging pour Java.
Il n'est pas nécessaire d'installer l'agent Cloud Logging pour utiliser la bibliothèque Cloud Logging pour Java.
Avant de commencer
- Connectez-vous à votre compte Google.
Si vous n'en possédez pas déjà un, vous devez en créer un.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.
- Activez Cloud Logging API.
Appender Logback pour Cloud Logging
L'appender Logback permet d'utiliser Cloud Logging avec la façade de journalisation SLF4J.
Installer la dépendance
Si vous utilisez Maven, ajoutez les lignes suivantes à votre fichier pom.xml
. Pour en savoir plus sur les BOM, consultez la page The Google Cloud Platform Libraries BOM (BOM des bibliothèques Google Cloud Platform).
Si vous utilisez Gradle, ajoutez les éléments suivants à vos dépendances :
Si vous utilisez sbt, ajoutez les éléments suivants à vos dépendances :
Configuration de Logback
Logback peut être configuré par programmation ou à l'aide d'un script exprimé en XML ou Groovy.
Vous pouvez personnaliser le seuil de gravité minimal, le nom du journal ou fournir des outils d'amélioration supplémentaires. Voici un exemple de configuration de Logback au format XML :
Exemple
Une fois Logback configuré pour utiliser l'appender Cloud Logging Logback, vous pouvez rediriger les journaux à l'aide de l'API de journalisation SLF4J. Cet extrait montre comment effectuer un journal à l'aide de la façade SLF4J dans votre application:
Gestionnaire java.util.logging
Vous pouvez également utiliser l'API Cloud Logging à l'aide d'un gestionnaire d'API de journalisation Java par défaut.Installer la dépendance
Si vous utilisez Maven avec un BOM, ajoutez les éléments suivants à votre fichier pom.xml
:
Si vous utilisez Maven sans BOM, ajoutez les éléments suivants à vos dépendances :
Si vous utilisez Gradle, ajoutez les éléments suivants à vos dépendances :
Si vous utilisez sbt, ajoutez les éléments suivants à vos dépendances :
Si vous utilisez IntelliJ ou Eclipse, vous pouvez ajouter des bibliothèques clientes à votre projet à l'aide des plug-ins IDE suivants :
Les plug-ins offrent des fonctionnalités supplémentaires, telles que la gestion des clés pour les comptes de service. Reportez-vous à la documentation de chaque plug-in pour plus de détails.
Configurer java.util.logging
Les gestionnaires de journalisation peuvent être ajoutés de manière automatisée ou à partir d'un fichier de configuration.
Le chemin d'accès au fichier de configuration doit être fourni à votre application en tant que propriété système :
-Djava.util.logging.config.file=/path/to/logging.properties
Voici un exemple de fichier de configuration :
Exemple
Cet extrait montre comment effectuer la journalisation à l'aide du gestionnaire java.util.logging
:
Configuration commune
Les sections suivantes décrivent la configuration commune au gestionnaire java.util.logging
et à l'appender Logback pour Cloud Logging.
Valeurs par défaut
L'appender Logback et le gestionnaire java.util.logging
instancient un client Cloud Logging en utilisant les valeurs par défaut suivantes :
Nom du journal :
java.log
Seuil minimal à consigner :
INFO
Niveau de gravité du vidage :
ERROR
La bibliothèque Cloud Logging pour Java regroupe les messages par taille et en fonction du temps écoulé depuis la dernière opération d'écriture. Les lots qui contiennent des requêtes de journalisation dont le niveau de gravité est supérieur ou égal au niveau indiqué sont immédiatement rédigés.
Détection de ressources surveillées
Tous les journaux envoyés via les bibliothèques Cloud Logging nécessitent un type de ressource surveillée afin d'identifier votre application.
L'appender Logback et le gestionnaire java.util.logging
détectent automatiquement le type de ressource de vos applications App Engine, Compute Engine et Google Kubernetes Engine.
Dans les autres environnements, une ressource surveillée de type global
est utilisée par défaut.
Vous pouvez remplacer le type de ressource surveillée par un type valide dans la configuration de l'appender Logback ou dans la configuration du gestionnaire java.util.logging
.
Champs et étiquettes supplémentaires
L'appender Logback et le gestionnaire java.util.logging
permettent d'ajouter ou de mettre à jour des champs d'un objet LogEntry en utilisant une instance LoggingEnhancer.
Les outils d'amélioration doivent être configurés comme indiqué dans la configuration de l'appender Logback ou dans la configuration du gestionnaire java.util.logging
:
Pour plus d'informations sur l'installation, consultez la documentation de la bibliothèque Cloud Logging pour Java. Vous pouvez également signaler d'éventuels problèmes à l'aide de l'outil de suivi des problèmes.
Utiliser directement la bibliothèque cliente cloud
Pour plus d'informations sur l'utilisation directe de la bibliothèque cliente Cloud Logging pour Java, consultez la documentation Bibliothèques clientes Cloud Logging.
Exécuter des applications sur Google Cloud
Le rôle Rédacteur de journaux d'IAM sur Google Cloud est nécessaire pour utiliser la bibliothèque Cloud Logging pour Java. La plupart des environnements Google Cloud fournissent ce rôle par défaut.
App Engine
Par défaut, App Engine attribue le rôle Rédacteur de journaux.
La bibliothèque Cloud Logging pour Java peut être utilisée sans avoir à fournir explicitement des identifiants.
Cloud Logging est automatiquement activé pour les applications App Engine. Aucune configuration supplémentaire n'est requise.
L'environnement standard App Engine utilise par défaut l'API java.util.logging.Logger
, qui écrit directement dans Cloud Logging et est facile à configurer.
Pour en savoir plus, reportez-vous à la documentation App Engine sur la lecture et l'écriture de journaux d'application.
Environnement flexible App Engine
Dans l'environnement flexible App Engine, java.util.logging
utilise ConsoleHandler
par défaut et envoie les journaux à stdout
et stderr
.
L'environnement d'exécution Jetty comprend la bibliothèque Cloud Logging pour Java.
Le gestionnaire java.util.logging
peut être utilisé pour envoyer directement les journaux dans Cloud Logging en fournissant le champ logging.properties
dans votre fichier app.yaml
, comme illustré ci-dessous :
env_variables:
JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties
Le gestionnaire java.util.logging
et l'appender Logback permettent la journalisation de l'ID de trace dans les environnements d'exécution Jetty.
En cas d'exécution dans l'environnement flexible App Engine, une instance TraceLoggingEnhancer ajoute un ID de trace sécurisé à chaque entrée de journal avec le libellé trace_id
.
Google Kubernetes Engine
Sur Google Kubernetes Engine, vous devez ajouter le niveau d'accès logging.write
lors de la création du cluster :
gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/logging.write
Compute Engine
Lorsque vous utilisez des instances de VM Compute Engine, ajoutez le niveau d'accès cloud-platform
à chaque instance. Lorsque vous créez une instance via Google Cloud Console, vous pouvez le faire dans la section Identité et accès à l'API du panneau Créer une instance. Utilisez le compte de service par défaut de Compute Engine ou un autre compte de service de votre choix, puis sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud dans la section Identité et accès à l'API. Quel que soit le compte de service sélectionné, vérifiez qu'il dispose du rôle Rédacteur de journaux dans la section IAM et administration de Cloud Console.
Exécuter en local et depuis un autre emplacement
Pour utiliser la bibliothèque Cloud Logging pour Java en dehors de Google Cloud, y compris en l'exécutant sur votre propre poste de travail, sur les ordinateurs de votre centre de données ou sur les instances de VM d'un autre fournisseur cloud, vous devez saisir l'ID de votre projet Google Cloud ainsi que les identifiants du compte de service approprié directement dans la bibliothèque Cloud Logging pour Java.
Vous pouvez créer et obtenir manuellement des identifiants pour le compte de service. Lorsque vous spécifiez le champ Rôle, utilisez le rôle Rédacteur de journaux. Pour en savoir plus sur les rôles Cloud IAM (Cloud Identity and Access Management), consultez le Guide du contrôle des accès.
Afficher les journaux
Après le déploiement, vous pouvez afficher les journaux dans l'explorateur de journaux.
Accéder à l'explorateur de journaux
Dans l'explorateur de journaux, vous devez spécifier une ou plusieurs ressources, mais leur sélection peut ne pas être évidente. Voici quelques conseils pour vous aider à faire vos premiers pas :
Si vous déployez votre application sur App Engine ou utilisez les bibliothèques propres à App Engine, définissez votre ressource sur Application GAE.
Si vous déployez votre application sur Compute Engine, définissez la ressource sur Instance de VM GCE.
Si vous déployez votre application sur Google Kubernetes Engine, la configuration de la journalisation de votre cluster détermine le type de ressource des entrées de journal. Pour en savoir plus sur l'ancienne suite d'opérations Google Cloud et sur les solutions Kubernetes Monitoring de la suite d'opérations Google Cloud, ainsi que sur l'incidence de ces options sur le type de ressource, consultez la page Migrer vers les solutions Kubernetes Monitoring de la suite d'opérations Google Cloud.
Si votre application utilise directement l'API Cloud Logging, la ressource dépend de l'API et de votre configuration. Par exemple, dans votre application, vous pouvez spécifier une ressource ou utiliser une ressource par défaut.
Si aucun journal ne s'affiche dans l'explorateur de journaux, passez en mode de requête avancée et utilisez une requête vide pour voir toutes les entrées de journal.
- Pour passer en mode de requête avancée, cliquez sur le menu (▾) en haut de l'explorateur de journaux, puis sélectionnez Convertir en filtre avancé.
- Effacez le contenu qui apparaît dans le champ de filtre.
- Cliquez sur Envoyer le filtre.
Vous pouvez examiner les entrées individuelles pour identifier vos ressources.
Pour obtenir plus d'informations, consultez les sections Afficher les journaux et Requêtes de journaux avancées.