Custom loggers could make default loggers miss information.
- Dominant language
- C#
- Stars
- 5.5k
- Forks
- 1.5k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 141
Description
During investigation of #9098 we found a following design problem:
If
- any custom logger would be created without setting `IEventSource4.IncludeEvaluationPropertiesAndItems()`.
- And this logger would be added to use with the build-in MSBuild loggers.
- And MSBuild runs in multiple nodes.
Then we would miss evaluation items and properties in all the loggers.
Analysis:
Despite the name, `IncludeEvaluationPropertiesAndItems` does not control whether to include or not properties and items to log of the particular logger and rather has a meaning of a logger version. In fact, its presence means that properties and items are included in `ProjectEvaluationFinished` event for modern loggers and absence that they are included in `ProjectStarted` event for legacy loggers. So, if one of the attached loggers is legacy ( which is detected by missing IncludeEvaluationPropertiesAndItems), so for backwards compatibility all other modern loggers would not obtain properties in the event they expect, see [this commit](https://github.com/dotnet/msbuild/commit/794abcbb005017cf3a75850a9f001419bb47bd38).
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.