proj-info
proj-info copied to clipboard
Consider not logging full MSBuild output on a failed build
Is your feature request related to a problem? Please describe. When MSBuild build fails, ProjInfo logs full MSBuild output which is very verbose. It happens here: https://github.com/ionide/proj-info/blob/22b59a7c9411512e7ca23fc376e98227546dd98e/src/Ionide.ProjInfo/Library.fs#L1062-L1065
Sample beginning of output:
[14:18:37 INF] Ionide.ProjInfo.WorkspaceLoaderViaProjectGraph : Started loading projects 20 ["C:\\projekty\\fsharp\\fsharp_scripts\\.cache\\dotnet__fsharp\\9ae94bb9\\_\\tests\\service\\data\\CSharp_Analysis\\CSharp_Analysis.csproj", ...]
[14:18:39 ERR] Ionide.ProjInfo.WorkspaceLoaderViaProjectGraph : Overall Build: Failure, projects built 20 : Build started.
Static graph loaded in 1.055 seconds: 30 nodes, 72 edges
Project "CSharp_Analysis.csproj" (ResolveAssemblyReferencesDesignTime;ResolveProjectReferencesDesignTime;ResolvePackageDependenciesDesignTime;FindReferenceAssembliesForReferences;_GenerateCompileDependencyCache;_ComputeNonExistentFileProperty;BeforeBuild;BeforeCompile;CoreCompile target(s)):
...
(followed by a lot of MSBuild output)
Describe the solution you'd like Better control over how much output is produced in case of failure.
Describe alternatives you've considered Disable ProjInfo's logs through Serilog configuration - but that gets rid of useful log information.
We should do two things here:
- remove the long message from the existing logger message
- add another, very-high-verbosity message that logs the build message
However, we should move to making that build message only generated logged in the first place if the verbosity is at a certain level, because that huge string in memory can't be doing well for our overall allocations.
We do have this msbuildLogger so we might even be able to remove the giant string completely and let that show errors/details.