Obtener registros de compilación con MSBuild

Mediante el uso de opciones de línea de comandos con MSBuild, puede indicar la cantidad de datos de compilación que quiere revisar y si quiere guardarlos en uno o más archivos. También puede especificar un registrador personalizado para recopilar datos de compilación. Para obtener información sobre las opciones de línea de comandos de MSBuild que no se tratan en este tema, consulte Referencia de la línea de comandos.

Nota:

Si compila proyectos mediante el IDE de Visual Studio, puede solucionar las compilaciones mediante la revisión de los registros de compilación. Para obtener más información, vea Cómo: Ver, guardar y configurar archivos de registro de compilación.

Establecimiento del nivel de detalle

Cuando compila un proyecto mediante el uso de MSBuild sin especificar un nivel de detalle, la siguiente información aparece en el registro de salida:

  • Errores, advertencias y mensajes que están clasificados como muy importantes.

  • Algunos eventos de estado.

  • Un resumen de la compilación.

Mediante el uso del modificador -verbosity ( -v), puede controlar la cantidad de datos que aparecen en el registro de salida. Para solucionar el problema, utilice un nivel de detalle del detailed (d) o diagnostic (diag), que proporciona más información.

El proceso de compilación puede ser más lento cuando -verbosity se establece en detailed e incluso más lento al establecer -verbosity en diagnostic.

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

Configuración de nivel de detalle

En la siguiente tabla se muestra cómo el nivel de detalle de registro (valores de columna) afecta a qué tipos de mensaje (valores de fila) se registran.

Tipo de mensaje/Nivel de detalle Quiet Minimal Normal Detallado Diagnóstico
Errores
Advertencias
Mensajes de gran importancia
Mensajes de importancia normal
Mensajes de importancia baja
Información adicional del motor MSBuild

Guardar el registro de compilación en un archivo

Puede usar el modificador -fileLogger (fl) para guardar los datos de compilación en un archivo. En el ejemplo siguiente, los datos de compilación se guardan en un archivo denominado msbuild.log.

msbuild MyProject.proj -t:go -fileLogger

En el ejemplo siguiente, el archivo de registro se denomina MyProjectOutput.log, y el nivel de detalle de la salida del registro se establece en diagnostic. Estos dos valores se especifican mediante el modificador -fileLoggerParameters (flp).

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

Para más información, consulte Referencia de la línea de comandos.

Guardar la salida de registro en varios archivos

En el ejemplo siguiente se guarda el registro completo en msbuild1.log, solo los errores en JustErrors.log y solo las advertencias en JustWarnings.log. En el ejemplo se utilizan números de archivo para cada uno de los tres archivos. Los números de archivo se especifican justo después de los modificadores -fl y -flp (por ejemplo, -fl1 y -flp1).

Los modificadores --fileLoggerParameters (flp) para los archivos 2 y 3 especifican el nombre de cada archivo y lo que se va a incluir en cada uno. No se especifica ningún nombre para el archivo 1, por lo que se utiliza el nombre predeterminado de msbuild1.log.

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

Para más información, consulte Referencia de la línea de comandos.

Guardar un registro binario

Puede guardar el registro en formato comprimido y binario con el modificador -binaryLogger (bl). Este registro incluye una descripción detallada del proceso de compilación y puede ser leído por determinadas herramientas de análisis de registro.

En el ejemplo siguiente, se crea un archivo de registro binario llamado binarylogfilename.

-bl:binarylogfilename.binlog

Puede usar el Visor de registros estructurados para consultar los registros binarios de forma que resulte mucho más fácil ver lo que está ocurriendo.

Para más información, consulte Referencia de la línea de comandos.

Uso de un registrador personalizado

Para escribir su propio registrador, cree un tipo administrado que implemente la interfaz ILogger. Puede usar un registrador personalizado, por ejemplo, para enviar errores de compilación por correo electrónico o para registrarlos en una base de datos o en un archivo XML. Para más información, consulte Registradores de compilación.

En la línea de comandos de MSBuild, especifique el registrador personalizado mediante el modificador -logger. También puede utilizar el modificador -noconsolelogger para desactivar el registrador de consola predeterminado.