Journalisation d'événements d'application avec Java

Cette partie du tutoriel consacré à Bookshelf explique comment une application peut intégrer une journalisation détaillée pour détecter, déboguer et surveiller les problèmes éventuels.

Ce tutoriel comporte plusieurs pages. Pour le suivre depuis le début et consulter les instructions relatives à la configuration, accédez à la page Application Bookshelf pour Java.

Exécuter l'application sur votre machine locale

Pour exécuter l'application localement :

  1. Dans le répertoire getting-started-java/bookshelf-standard/5-logging, saisissez la commande suivante pour démarrer un serveur Web local :

    mvn package appengine:run -Dbookshelf.bucket=[YOUR-BUCKET]
    Remplacez [YOUR-BUCKET] par le nom de votre bucket.
  2. Dans votre navigateur Web, accédez à http://localhost:8080.

Déployer l'application dans l'environnement standard App Engine

Pour un déploiement dans l'environnement standard App Engine :

  1. Pour créer un index de banque de données qui est téléchargé vers l'application Bookshelf, créez au moins un livre, puis cliquez sur Mes livres. Notez que la compilation de l'application à l'aide de la commande clean supprime l'index local. Faites-le donc sur la compilation de l'application que vous allez déployer.
  2. Dans le répertoire getting-started-java/bookshelf-standard/5-logging, saisissez cette commande pour déployer l'application :
  3. mvn appengine:deploy -Dappengine.appId=[YOUR-PROJECT-ID] -Dappengine.version=[YOUR-VERSION] -Dbookshelf.bucket=[YOUR-BUCKET].appspot.com
    Remplacez [YOUR-PROJECT-ID] par votre ID de projet et [YOUR-VERSION] par votre version, par exemple 1 ou 2, ou par une autre valeur de chaîne que vous souhaitez utiliser.
  4. Dans votre navigateur Web, saisissez l'URL suivante :

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Remplacez les éléments suivants :

Une fois que vous avez mis à jour votre application, vous pouvez redéployer la dernière version en saisissant la même commande que celle que vous avez utilisée pour déployer l'application pour la première fois, et en spécifiant le même ID de projet et la même version. Cela écrase l'application actuellement déployée. Si vous spécifiez une chaîne de version différente dans la ligne de commande mise à jour, le nouveau déploiement crée une nouvelle version de votre application et la définie comme la version actuellement diffusée.

Vous pouvez réduire les coûts en supprimant les versions inactives de votre application.

Pour supprimer une version d'application :

  1. Dans Cloud Console, accédez à la page Versions pour App Engine.

    Accéder à la page Versions

  2. Cochez la case correspondant à la version de l'application autre que celle par défaut que vous souhaitez supprimer.
  3. Cliquez sur Supprimer  pour supprimer la version de l'application.

Pour en savoir plus sur le nettoyage des ressources facturables, reportez-vous à la section Nettoyage de la dernière étape de ce tutoriel.

Afficher les journaux

Lorsque l'application Bookshelf s'exécute, elle écrit les données de journalisation collectées et mises à disposition dans Cloud Console. Vous pouvez utiliser les outils de surveillance des journaux de Cloud Console pour analyser directement les journaux. Si vous souhaitez une analyse plus détaillée, vous pouvez utiliser Cloud Console pour diffuser ou importer les journaux de l'application dans BigQuery, ou les exporter vers un bucket Cloud Storage.

Journalisation dans Cloud Console

Structure de l'application

Le schéma suivant décrit la façon dont l'application gère la journalisation lorsqu'elle est déployée dans l'environnement standard App Engine.

Exemple de structure de journalisation – Environnement standard App Engine

Comprendre le code

De nombreux packages de journalisation Java sont compatibles avec l'environnement standard App Engine. Cet exemple utilise java.util.logging, car il est le mieux compris. Chaque classe a besoin d'un Logger instancié comme suit :

private final Logger logger = Logger.getLogger(ReadBookServlet.class.getName());

La méthode log prend une valeur de niveau et une chaîne. (Voir le niveau (Level) Java pour plus d'informations.) Les valeurs possibles pour le niveau sont :

Il est également possible de se connecter en utilisant l'une des méthodes de raccourci : config, info, warning ou severe.

logger.log(Level.INFO, "Read book with id {0}", id);

Les niveaux de journalisation, qui sont souvent définis à partir de fichiers de propriétés, peuvent également être définis et modifiés dans logging.properties :

# A default java.util.logging configuration.
# (All App Engine logging is through java.util.logging by default).

# Set the default logging level for all loggers to INFO
.level = INFO
handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=FINEST
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format = [%1$tc] %4$s: %2$s - %5$s %6$s%n

Fonctionnement de la configuration de la journalisation

Lorsque l'exemple d'application s'exécute dans l'environnement standard App Engine, les journaux d'application sont automatiquement collectés par Cloud Logging. Vous pouvez alors les consulter, les rechercher et les exporter dans la visionneuse de journaux de Cloud Console.

Dans cet exemple, tous les journaux sont écrits dans stderr/stdout.

Nettoyer

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud Platform, procédez comme suit :

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer .
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer les versions autres que celle par défaut de votre application

Si vous ne souhaitez pas supprimer votre projet, vous pouvez réduire les coûts en supprimant les versions autres que celle par défaut de votre application.

Pour supprimer une version d'application :

  1. Dans Cloud Console, accédez à la page Versions pour App Engine.

    Accéder à la page Versions

  2. Cochez la case correspondant à la version de l'application autre que celle par défaut que vous souhaitez supprimer.
  3. Cliquez sur Supprimer  pour supprimer la version de l'application.

Supprimer votre bucket Cloud Storage

Pour supprimer un bucket Cloud Storage :

  1. Dans Cloud Console, accédez à la page Navigateur Cloud Storage.

    Accéder au navigateur Cloud Storage

  2. Cochez la case correspondant au bucket que vous souhaitez supprimer.
  3. Pour supprimer le bucket, cliquez sur Supprimer .

Étape suivante