msbuild verbosity levels
Posted by jpluimers on 2021/03/31
Passing verbosity levels to msbuild on the one hand can help to quickly locate issues that go otherwise unnoticed, but also make your output so large that it is hard to search through.
Some build targets (Delphi!) do not pass the verbosity to their underlying tools, so for those cases you have to find other means to increase underlying verbosity.
You can always pass msbuild options by using the commandline (even abbreviate them as described in [WayBack] MSBuild Command-Line Reference – Visual Studio | Microsoft Docs: You can specify the following verbosity levels: q[uiet]
, m[inimal]
, n[ormal]
, d[etailed]
, and diag[nostic]
).
Often you also can use your IDE can also specify verbosity levels, for instance:
- [WayBack] Did you know… You can configure the MSBuild verbosity in the Output window? – #329 – Sara Ford’s Weblog (Visual Studio 2008 and up):
Under Tools – Options – Projects and Solutions – Build and Run, there’s the MSBuild project build output verbosity combo box.
- [WayBack] MSBuild Overview (Delphi 2007 and up):
To control the level of output from MSBuild, use the Verbosity field on the Tools
-> Options ->
Environment Options page.
The currently specified verbosity values in ascending order according to [WayBack] LoggerVerbosity Enum (Microsoft.Build.Framework) | Microsoft Docs:
Quiet
0 Quiet verbosity, which displays a build summary. Minimal
1 Minimal verbosity, which displays errors, warnings, messages with MessageImportance values of High, and a build summary. Normal
2 Normal verbosity, which displays errors, warnings, messages with MessageImportance values of High, some status events, and a build summary. Detailed
3 Detailed verbosity, which displays errors, warnings, messages with MessageImportance values of High or Normal, all status events, and a build summary. Diagnostic
4 Diagnostic verbosity, which displays all errors, warnings, messages, status events, and a build summary.
Note that in the past, Detailed
was called Details
:
[WayBack] visual studio 2010 – What is output at the different MSBuild output verbosity levels? – Stack Overflow:
- Quiet: only shows the result of your build.
- Minimal: shows some configurations of your msbuild, and the CSC task.
- Normal: This will show all the targets and its mainly steps.
- Details: In addition to normal, this flag shows the task and it’s implementation within the each target.
- Diagnostic: Contains all the information that a MSBuild need and produce, it’s switches, parameteres, prerequisites and etc. The input parameter of the target and task, and also contains the value of the input and output parameter, the detail steps of the task execution. The time execution for each task.
In matrix form, as per [WayBack] Obtaining Build Logs with MSBuild – Visual Studio | Microsoft Docs:
The following table shows how the log verbosity (column values) affects which types of message (row values) are logged.
Quiet Minimal Normal Detailed Diagnostic Errors ✅ ✅ ✅ ✅ ✅ Warnings ✅ ✅ ✅ ✅ ✅ High-importance Messages ✅ ✅ ✅ ✅ Normal-importance Messages ✅ ✅ ✅ Low-importance Messages ✅ ✅ Additional MSBuild-engine information ✅
–jeroen
Kirill Osenkov said
See also https://msbuildlog.com for better MSBuild logging