Recuperare log di compilazione con MSBuild

Usando le opzioni della riga di comando con MSBuild, è possibile specificare la quantità di dati di compilazione da esaminare e se si desidera salvare i dati di compilazione in uno o più file. È anche possibile specificare un logger personalizzato per raccogliere i dati di compilazione. Per informazioni sulle opzioni della riga di comando di MSBuild non illustrate in questo argomento, vedere Informazioni di riferimento sulla riga di comando.

Nota

Se si compilano progetti usando l'IDE di Visual Studio, è possibile risolvere i problemi di tali compilazioni esaminando i log di compilazione. Per altre informazioni, vedere Procedura: Visualizzare, salvare e configurare file di log di compilazione.

Impostare il livello di dettaglio

Quando si compila un progetto usando MSBuild senza specificare un livello di dettaglio, nel log di output vengono visualizzate le informazioni seguenti:

  • Errori, avvisi e messaggi classificati come molto importanti.

  • Alcuni eventi di stato.

  • Riepilogo della compilazione.

Usando l'opzione -verbosity (-v), è possibile controllare la quantità di dati da visualizzare nel log di output. Per la risoluzione dei problemi, usare un livello di dettaglio detailed (d) o diagnostic (diag), che fornisce la maggior parte delle informazioni.

Il processo di compilazione può essere più lento quando si imposta -verbosity su detailed e ancora più lento quando si imposta -verbosity su diagnostic.

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

Impostazioni del livello di dettaglio

La tabella seguente illustra in che modo il livello di dettaglio del log (valori di colonna) influisce sulla scelta dei tipi di messaggio (valori di riga) da registrare.

Tipo di messaggio/Dettaglio Quiet Minimo Normale Dettagliate Diagnostic
Errori
Avvisi
Messaggi con priorità alta
Messaggi con priorità normale
Messaggi con priorità bassa
Informazioni aggiuntive sul motore di MSBuild

Salvare il log di compilazione in un file

È possibile usare l'opzione -fileLogger (fl) per salvare i dati di compilazione in un file. L'esempio seguente salva i dati di compilazione in un file denominato msbuild.log.

msbuild MyProject.proj -t:go -fileLogger

Nell'esempio seguente il nome del file di log è MyProjectOutput.log e il dettaglio dell'output del log è impostato su diagnostic. È possibile specificare queste due impostazioni usando l'opzione -fileLoggerParameters (flp).

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

Per altre informazioni, vedere Riferimenti alla riga di comando.

Salvare l'output del log in più file

L'esempio seguente salva l'intero log in msbuild1.log, i soli errori in JustErrors.log e i soli avvisi in JustWarnings.log. L'esempio usa numeri di file per ognuno dei tre file. I numeri di file vengono specificati subito dopo le opzioni -fl e -flp, ad esempio -fl1 e -flp1.

Le opzioni -fileLoggerParameters (flp) per i file 2 e 3 specificano cosa denominare ogni file e cosa includere in ogni file. Poiché per il file 1 non è specificato alcun nome, viene usato il nome predefinito msbuild1.log.

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

Per altre informazioni, vedere Riferimenti alla riga di comando.

Salvare un log binario

È possibile salvare il log in formato binario compresso usando l'opzione -binaryLogger (bl). Il log include una descrizione dettagliata del processo di compilazione e può essere letto da alcuni strumenti di analisi dei log.

Nell'esempio seguente viene creato un file di log binario con nome binarylogfilename.

-bl:binarylogfilename.binlog

È possibile usare il visualizzatore di log strutturati per visualizzare i log binari in modo da rendere molto più semplice vedere cosa sta succedendo.

Per altre informazioni, vedere Riferimenti alla riga di comando.

Usare un logger personalizzato

Per scrivere un logger personalizzato, è sufficiente creare un tipo gestito che implementi l'interfaccia ILogger. È possibile usare un logger personalizzato, ad esempio, per inviare gli errori di compilazione in un messaggio di posta elettronica, registrarli in un database o registrarli in un file XML. Per altre informazioni, vedere Logger di compilazione.

Nella riga di comando di MSBuild è possibile specificare il logger personalizzato tramite l'opzione -logger. È anche possibile usare l'opzione -noconsolelogger per disabilitare il logger di console predefinito.