You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: "Breaking change: Terminal logger is default"
3
-
description: Learn about a breaking change in the .NET 9 SDK where the terminal logger is used by default for interactive MSBuild invocations.
2
+
title: "Breaking change: Terminal Logger is default"
3
+
description: Learn about a breaking change in the .NET 9 SDK where Terminal Logger is used by default for interactive MSBuild invocations.
4
4
ms.date: 01/10/2024
5
5
---
6
-
# Terminal logger is default
6
+
# Terminal Logger is default
7
7
8
-
The terminal logger is now enabled by default for all "interactive" terminal sessions. The terminal logger formats the console output for builds differently to the console logger. For more information about the terminal logger, see ['dotnet build' options](../../../tools/dotnet-build.md#options), specifically the `--tl` option.
8
+
Terminal Logger is now enabled by default for all "interactive" terminal sessions. Terminal Logger formats the console output for builds differently to the console logger. For more information about Terminal Logger, see ['dotnet build' options](../../../tools/dotnet-build.md#options), specifically the `--tl` option.
9
9
10
10
## Previous behavior
11
11
12
12
`dotnet build` and other build-related CLI commands used the 'minimal' verbosity MSBuild console logger by default for user-driven builds.
13
13
14
14
## New behavior
15
15
16
-
If the terminal supports various layout and colorization features, `dotnet build` and other build-related CLI commands use the terminal logger by default for user-triggered builds. If the command is part of a shell script or has had input or output redirected in any way, or if the terminal doesn't support some of the enhanced layout features that terminal logger has, then the terminal logger isn't used.
16
+
If the terminal supports various layout and colorization features, `dotnet build` and other build-related CLI commands use Terminal Logger by default for user-triggered builds. If the command is part of a shell script or has had input or output redirected in any way, or if the terminal doesn't support some of the enhanced layout features that Terminal Logger has, then Terminal Logger isn't used.
17
17
18
18
## Version introduced
19
19
@@ -25,14 +25,14 @@ This change is a [behavioral change](../../categories.md#behavioral-change).
25
25
26
26
## Reason for change
27
27
28
-
The terminal logger output about the progress of a build is more information dense and actionable than the console logger output. The MSBuild team wants to encourage the use of terminal logger early in the .NET 9 release cycle so that there's time to gather feedback about the quality and functionality of the feature.
28
+
Terminal Logger output about the progress of a build is more information dense and actionable than the console logger output. The MSBuild team wants to encourage the use of Terminal Logger early in the .NET 9 release cycle so that there's time to gather feedback about the quality and functionality of the feature.
29
29
30
30
## Recommended action
31
31
32
-
If you need to revert to the console logger, you can disable the terminal logger can be disabled in the following ways:
32
+
If you need to revert to the console logger, you can disable Terminal Logger in the following ways:
33
33
34
-
- To disable terminal logger for a specific command, specify `--tl:off` on the command line or via an MSBuild response file.
35
-
- To disable terminal logger for all commands, set the `MSBUILDTERMINALLOGGER` environment variable to `off`.
34
+
- To disable Terminal Logger for a specific command, specify `--tl:off` on the command line or via an MSBuild response file.
35
+
- To disable Terminal Logger for all commands, set the `MSBUILDTERMINALLOGGER` environment variable to `off`.
Copy file name to clipboardExpand all lines: docs/core/whats-new/dotnet-8/sdk.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@ bin\Release\net8.0\
66
66
67
67
### Terminal build output
68
68
69
-
`dotnet build` has a new option to produce more modernized build output. This *terminal logger* output groups errors with the project they came from, better differentiates the different target frameworks for multi-targeted projects, and provides real-time information about what the build is doing. To opt in to the new output, use the `--tl` option. For more information about this option, see [dotnet build options](../../tools/dotnet-build.md#options).
69
+
`dotnet build` has a new option to produce more modernized build output. This *Terminal Logger* output groups errors with the project they came from, better differentiates the different target frameworks for multi-targeted projects, and provides real-time information about what the build is doing. To opt in to the new output, use the `--tl` option. For more information about this option, see [dotnet build options](../../tools/dotnet-build.md#options).
Copy file name to clipboardExpand all lines: docs/core/whats-new/dotnet-9/overview.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,7 +45,7 @@ For more information, see [What's new in the .NET 9 libraries](libraries.md).
45
45
The .NET 9 SDK introduces _workload sets_, where all of your workloads stay at a single, specific version until explicitly updated. For tools, a new option for [`dotnet tool install`](../../tools/dotnet-tool-install.md) lets users (instead of tool authors) decide whether a tool is allowed to run on a newer .NET runtime version than the version the tool targets. In addition:
46
46
47
47
- Unit testing has better MSBuild integration that allows you to run tests in parallel.
48
-
-The terminal logger is enabled by default and also has improved usability. For example, the total count of failures and warnings is now summarized at the end of a build.
48
+
-Terminal Logger is enabled by default and also has improved usability. For example, the total count of failures and warnings is now summarized at the end of a build.
49
49
- New MSBuild script analyzers ("build checks") are available.
50
50
- The SDK can detect and adjust for version mismatches between the .NET SDK and MSBuild.
51
51
- The `dotnet workload history` command shows you the history of workload installations and modifications for the current .NET SDK installation.
Copy file name to clipboardExpand all lines: docs/core/whats-new/dotnet-9/sdk.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: What's new in the SDK and tooling for .NET 9
3
-
description: Learn about the new .NET SDK features introduced in .NET 9, including for unit testing, terminal logger, tool roll-forward, and build script analyzers.
3
+
description: Learn about the new .NET SDK features introduced in .NET 9, including for unit testing, Terminal Logger, tool roll-forward, and build script analyzers.
4
4
titleSuffix: ""
5
5
ms.date: 11/11/2024
6
6
ms.topic: whats-new
@@ -12,41 +12,41 @@ This article describes new features in the .NET SDK and tooling for .NET 9.
12
12
13
13
## Unit testing
14
14
15
-
This section describes the updates to unit testing in .NET 9: running tests in parallel, and terminal logger test output.
15
+
This section describes the updates to unit testing in .NET 9: running tests in parallel, and Terminal Logger test output.
16
16
17
17
### Run tests in parallel
18
18
19
19
In .NET 9, `dotnet test` is more fully integrated with MSBuild. Because MSBuild supports [building in parallel](/visualstudio/msbuild/building-multiple-projects-in-parallel-with-msbuild), you can run tests for the same project across different target frameworks in parallel. By default, MSBuild limits the number of parallel processes to the number of processors on the computer. You can also set your own limit using the [-maxcpucount](/visualstudio/msbuild/building-multiple-projects-in-parallel-with-msbuild#-maxcpucount-switch) switch. If you want to opt out of the parallelism, set the `TestTfmsInParallel` MSBuild property to `false`.
20
20
21
-
### Terminal logger test display
21
+
### Terminal Logger test display
22
22
23
-
Test result reporting for [`dotnet test`](../../tools/dotnet-test.md) is now supported directly in the MSBuild terminal logger. You get more fully featured test reporting both _while_ tests are running (displays the running test name) and _after_ tests are completed (any test errors are rendered in a better way).
23
+
Test result reporting for [`dotnet test`](../../tools/dotnet-test.md) is now supported directly in MSBuild Terminal Logger. You get more fully featured test reporting both _while_ tests are running (displays the running test name) and _after_ tests are completed (any test errors are rendered in a better way).
24
24
25
-
For more information about the terminal logger, see [dotnet build options](../../tools/dotnet-build.md#options).
25
+
For more information about Terminal Logger, see [dotnet build options](../../tools/dotnet-build.md#options).
26
26
27
27
## .NET tool roll-forward
28
28
29
29
[.NET tools](../../tools/global-tools.md) are framework-dependent apps that you can install globally or locally, then run using the .NET SDK and installed .NET runtimes. These tools, like all .NET apps, target a specific major version of .NET. By default, apps don't run on _newer_ versions of .NET. Tool authors have been able to opt in to running their tools on newer versions of the .NET runtime by setting the `RollForward` MSBuild property. However, not all tools do so.
30
30
31
31
A new option for [`dotnet tool install`](../../tools/dotnet-tool-install.md) lets _users_ decide how .NET tools should be run. When you install a tool via `dotnet tool install`, or when you run tool via [`dotnet tool run <toolname>`](../../tools/dotnet-tool-run.md), you can specify a new flag called `--allow-roll-forward`. This option configures the tool with roll-forward mode `Major`. This mode allows the tool to run on a newer major version of .NET if the matching .NET version is not available. This feature helps early adopters use .NET tools without tool authors having to change any code.
32
32
33
-
## Terminal logger
33
+
## Terminal Logger
34
34
35
-
The terminal logger is now [enabled by default](#enabled-by-default) and also has [improved usability](#usability).
35
+
Terminal Logger is now [enabled by default](#enabled-by-default) and also has [improved usability](#usability).
36
36
37
37
### Enabled by default
38
38
39
-
Starting in .NET 9, the default experience for all .NET CLI commands that use MSBuild is terminal logger, the enhanced logging experience that was released in .NET 8. This new output uses the capabilities of modern terminals to provide functionality like:
39
+
Starting in .NET 9, the default experience for all .NET CLI commands that use MSBuild is Terminal Logger, the enhanced logging experience that was released in .NET 8. This new output uses the capabilities of modern terminals to provide functionality like:
40
40
41
41
- Clickable links
42
42
- Duration timers for MSBuild tasks
43
43
- Color coding of warning and error messages
44
44
45
45
The output is more condensed and usable than the existing MSBuild console logger.
46
46
47
-
The new logger attempts to auto-detect if it can be used, but you can also manually control whether terminal logger is used. Specify the `--tl:off` command-line option to disable terminal logger for a specific command. Or, to disable terminal logger more broadly, set the `MSBUILDTERMINALLOGGER` environment variable to `off`.
47
+
The new logger attempts to auto-detect if it can be used, but you can also manually control whether Terminal Logger is used. Specify the `--tl:off` command-line option to disable Terminal Logger for a specific command. Or, to disable Terminal Logger more broadly, set the `MSBUILDTERMINALLOGGER` environment variable to `off`.
48
48
49
-
The set of commands that uses terminal logger by default is:
49
+
The set of commands that uses Terminal Logger by default is:
50
50
51
51
-`build`
52
52
-`clean`
@@ -58,7 +58,7 @@ The set of commands that uses terminal logger by default is:
58
58
59
59
### Usability
60
60
61
-
The terminal logger now summarizes the total count of failures and warnings at the end of a build. It also shows errors that contain newlines. (For more information about the terminal logger, see ['dotnet build' options](../../tools/dotnet-build.md#options), specifically the `--tl` option.)
61
+
Terminal Logger now summarizes the total count of failures and warnings at the end of a build. It also shows errors that contain newlines. (For more information about Terminal Logger, see ['dotnet build' options](../../tools/dotnet-build.md#options), specifically the `--tl` option.)
62
62
63
63
Consider the following project file that emits a warning when the project is built:
64
64
@@ -109,7 +109,7 @@ Build succeeded with 3 warning(s) in 0.8s
109
109
110
110
The message lines of the warning no longer have the repeated project and location information that clutter the display. In addition, the build summary shows how many warnings (and errors, if there are any) were generated during the build.
111
111
112
-
If you have feedback about the terminal logger, you can provide it in the [MSBuild repository](https://github.com/dotnet/msbuild/issues).
112
+
If you have feedback about Terminal Logger, you can provide it in the [MSBuild repository](https://github.com/dotnet/msbuild/issues).
113
113
114
114
## Faster NuGet dependency resolution for large repos
Copy file name to clipboardExpand all lines: includes/cli-tl.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,9 @@ ms.topic: include
4
4
---
5
5
-**`--tl:[auto|on|off]`**
6
6
7
-
Specifies whether the *terminal logger* should be used for the build output. The default is `auto`, which first verifies the environment before enabling terminal logging. The environment check verifies that the terminal is capable of using modern output features and isn't using a redirected standard output before enabling the new logger. `on` skips the environment check and enables terminal logging. `off` skips the environment check and uses the default console logger.
7
+
Specifies whether *Terminal Logger* should be used for the build output. The default is `auto`, which first verifies the environment before enabling terminal logging. The environment check verifies that the terminal is capable of using modern output features and isn't using a redirected standard output before enabling the new logger. `on` skips the environment check and enables terminal logging. `off` skips the environment check and uses the default console logger.
8
8
9
-
The terminal logger shows you the restore phase followed by the build phase. During each phase, the currently building projects appear at the bottom of the terminal. Each project that's building outputs both the MSBuild target currently being built and the amount of time spent on that target. You can search this information to learn more about the build. When a project is finished building, a single "build completed" section is written that captures:
9
+
Terminal Logger shows you the restore phase followed by the build phase. During each phase, the currently building projects appear at the bottom of the terminal. Each project that's building outputs both the MSBuild target currently being built and the amount of time spent on that target. You can search this information to learn more about the build. When a project is finished building, a single "build completed" section is written that captures:
0 commit comments