Obtenir des journaux de génération avec MSBuild

En utilisant les options de ligne de commande avec MSBuild, vous pouvez indiquer le nombre de données de build que vous souhaitez vérifier, et spécifier si vous voulez enregistrer les données de build dans un ou plusieurs fichiers. Vous pouvez également spécifier un enregistreur d’événements personnalisé pour collecter les données de build. Pour plus d’informations sur les options de ligne de commande MSBuild que cette rubrique ne traite pas, consultez l’article Command-Line Reference (Informations de référence sur la ligne de commande MSBuild).

Remarque

Si vous générez des projets à l’aide de l’IDE de Visual Studio, vous pouvez résoudre les problèmes de ces builds en passant en revue les journaux de génération. Pour plus d’informations, consultez Comment : afficher, enregistrer et configurer des fichiers journaux de génération.

Définir le niveau de détail

Lorsque vous générez un projet à l’aide de MSBuild sans spécifier un niveau de détail, les informations suivantes apparaissent dans le journal de sortie :

  • Erreurs, avertissements et messages qui sont classés comme très importants

  • Certains événements d’état

  • Résumé de la génération

En utilisant le commutateur -verbosity (-v), vous pouvez contrôler le volume de données affichées dans le journal de sortie. Pour la résolution des problèmes, utilisez un niveau de détail detailed (d) ou diagnostic (diag), qui fournit le plus d’informations.

Le processus de build peut être plus lent si le commutateur -verbosity est défini sur detailed, et encore plus si le commutateur -verbosity est défini sur diagnostic.

msbuild MyProject.proj -t:go -v:diag

Paramètres du niveau de détail

Le tableau suivant montre comment le niveau de détail du journal (valeurs de colonne) affecte les types de messages (valeurs de ligne) qui sont enregistrés.

Type de message/Verbosité Quiet Minimal Normal Detailed Diagnostic
Erreurs
Avertissements
Messages avec une importance haute
Messages d’importance normale
Messages de faible importance
Informations supplémentaires du moteur MSBuild

Enregistrer le journal de génération dans un fichier

Vous pouvez utiliser le commutateur -fileLogger (fl) pour enregistrer les données de build dans un fichier. Dans l’exemple suivant, les données de build sont enregistrées dans un fichier nommé msbuild.log.

msbuild MyProject.proj -t:go -fileLogger

Dans l’exemple suivant, le fichier journal est nommé MyProjectOutput.log, et le niveau de détail de sa sortie est défini sur diagnostic. Vous spécifiez ces deux paramètres à l’aide du commutateur -fileLoggerParameters (flp).

msbuild MyProject.proj -t:go -fl -flp:logfile=MyProjectOutput.log;verbosity=diagnostic

Pour plus d’informations, consultez Référence de ligne de commande.

Enregistrer le journal de sortie dans plusieurs fichiers

Dans l’exemple suivant, la totalité du journal est enregistrée dans msbuild1.log, les erreurs le sont dans JustErrors.log et les avertissements dans JustWarnings.log. Cet exemple utilise des numéros de fichier pour chacun des trois fichiers. Les numéros de fichier sont spécifiés juste après les commutateurs -fl et -flp (par exemple, -fl1 et -flp1).

Les commutateurs -fileLoggerParameters (flp) des fichiers 2 et 3 spécifient le nom de chaque fichier et leur contenu. Comme aucun nom n’est spécifié pour le fichier 1, le nom par défaut msbuild1.log est utilisé.

msbuild MyProject.proj -t:go -fl1 -fl2 -fl3 -flp2:logfile=JustErrors.log;errorsonly -flp3:logfile=JustWarnings.log;warningsonly

Pour plus d’informations, consultez Référence de ligne de commande.

Enregistrer un journal binaire

Vous pouvez enregistrer le journal dans un format binaire compressé à l’aide du commutateur -binaryLogger (bl). Ce journal inclut une description détaillée du processus de génération et peut être lu par certains outils d’analyse de journaux.

Dans l’exemple suivant, un fichier journal binaire est créé avec le nom binarylogfilename.

-bl:binarylogfilename.binlog

Vous pouvez utiliser le visualiseur de journaux structurés pour afficher les journaux binaires d'une manière qui permet d'observer plus facilement la situation.

Pour plus d’informations, consultez Référence de ligne de commande.

Utiliser un journal personnalisé

Vous pouvez écrire votre propre enregistreur d’événements en créant un type managé qui implémente l’interface ILogger. Vous pouvez utiliser un enregistreur d’événements personnalisé, par exemple, pour envoyer des erreurs de build par courrier électronique, et les enregistrer dans une base de données ou dans un fichier XML. Pour plus d’informations, consultez l’article Enregistreurs d’événements de génération.

Dans la ligne de commande MSBuild, vous pouvez spécifier l’enregistreur d’événements personnalisé à l’aide du commutateur -logger. Par ailleurs, le commutateur -noconsolelogger permet de désactiver l’enregistreur d’événements de console par défaut.