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
Si va a usar un shell que interpreta puntos y comas (por ejemplo, bash), coloque comillas simples o dobles alrededor de cualquier opción que tenga punto y coma para evitar que se interprete como separador de comandos. 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.