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
Si vous utilisez un interpréteur de commandes qui interprète des points-virgules (par exemple, bash), placez des guillemets simples ou doubles autour d’une option comportant des points-virgules pour l’empêcher d’être interprétée comme séparateur de commandes. 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.