New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Binlog causes detailed summary messages output to console #4409
Comments
The detailed summary at the end contains thousands of # which messes my GitLab log completely. `Deferred Messages Detailed Build Summary============================== Build Hierarchy (IDs represent configurations) =====================================================
|
I absolutely agree that this is undesired behavior, apologies for that. As long as any logger turns the detailed summary on (and the BinaryLogger needs to turn this on) then all loggers will receive the detailed summary. The BuildManager sends out the build summary as a disparate set of build messages to all loggers: We'll have to think carefully how to fix this because it's tricky. Not sure yet what a good solution here is, but once again, to iterate, I do agree that the user experience is not great here. |
And this is where the detailed summary is turned on when at least one logger has set the verbosity to diagnostic: https://github.com/Microsoft/msbuild/blob/08d1cb5532d98dd4b9f2f4ecdb7c9c7a037aed1c/src/MSBuild/XMake.cs#L2950-L2953 |
We could potentially use the approach from here: |
As a workaround with the binarylog parameter, I think we just need a way to set /detailedsummary to false |
Change the DetailedSummary command-line switch from parameterless to parameterized, allowing the user to have control and explicitly set it to false if needed, overriding the default of true when the verbosity is diagnostic. This is backwards compatible with the previous behavior, so if /ds is specified, it is equivalent to turning it on. Fixes #4409
I apologize for such a long delay, a PR is now available to allow force detailed summary off: #6338 |
@KirillOsenkov No way you should apologize! Thanks for the fix and for all the work you do on the build tools and the MSBuild Log Viewer. |
Being able to turn it off now is good but we should reconsider tweaking the default as in #6338 (comment) |
+1 for default off. |
yes it’s been bugging me for console |
Steps to reproduce
Create simple project and no other files in the directory:
Run following command:
The output is:
Now run the following command:
The output is:
Expected behavior
When binlog is enabled the command line output still does not include these detailed summary messages unless explicitly enabled for console logger.
Generalizing that I would say that logic "enable detailed summary if diagnostics logging is enabled" should work only when diagnostics logging was enabled explicitly by end-user from command line and not when some logger decides it wants more verbose logging compared to what user asked for.
Environment data
msbuild /version
output:I'd be happy to work on the fix, but I need some understanding whether this is really a bug or not. And then probably some high-level idea of how to fix properly.
The text was updated successfully, but these errors were encountered: