proj-info icon indicating copy to clipboard operation
proj-info copied to clipboard

Consider not logging full MSBuild output on a failed build

Open safesparrow opened this issue 1 year ago • 2 comments

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.

safesparrow avatar Feb 18 '24 14:02 safesparrow

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.

baronfel avatar Feb 18 '24 19:02 baronfel

We do have this msbuildLogger so we might even be able to remove the giant string completely and let that show errors/details.

TheAngryByrd avatar Feb 19 '24 14:02 TheAngryByrd