Enable the new TerminalLogger in .NET 8 SDK automatically
In .NET 8, you can use the new TerminalLogger. This terminal logger provides better output than the default console logger. It provides live progression and improves error reporting. However, it's not enabled by default. You need to use the --tl
option to enable it (e.g. dotnet build --tl
).
Instead of adding the flag every time you run a dotnet
command, you can enable the new terminal logger by adding the MSBUILDTERMINALLOGGER
environment variable. The environment variable can be set to true
, false
or auto
:
true
: Always use the new terminal loggerfalse
: Never use the new terminal loggerauto
: Use the new terminal logger if the console supports it
To enable the new terminal logger for the current user, run the following command in PowerShell:
[Environment]::SetEnvironmentVariable("MSBUILDTERMINALLOGGER", "auto", "User")
#Output comparison
The main differences between the default console logger and the terminal logger are:
- Warnings and errors are grouped by target framework
- The colors make it easier to read the output
- Hyperlink for the primary output of the build, so you can click on it to open the file
- The execution time is displayed for each target
- The final build status is clearer
Default console logger output in .NET 8:
Terminal logger:
Do you have a question or a suggestion about this post? Contact me!