---
title: "New Terminal logger for .NET 8"
description: "With preview 4 of .NET 8, a new terminal logger was introduced. It basically removes a lot of the noise that the default logger produces. It also adds some nice colors to the output. Let's see how to use it!"
updated: 2023-05-31
tags: [".NET 8", ".NET"]
canonical: "https://steven-giesel.com/blogPost/f6e0accf-9493-4cc4-8992-e8300e6b0cbc/new-terminal-logger-for-net-8"
---

# New Terminal logger for .NET 8

With preview 4 of .NET 8, a new terminal logger was introduced. It basically removes a lot of the noise that the default logger produces. It also adds some nice colors to the output. Let's see how to use it!

## The old way
Imagine we have the following code:
```csharp
Console.WriteLine("Hello World!"1);
```

Obviously this is not compilable, so if we invoke: `dotnet build` we get the following output:
```
MSBuild version 17.7.0-preview-23251-02+59879b095 for .NET
  Determining projects to restore...
  All projects are up-to-date for restore.
/usr/local/share/dotnet/sdk/8.0.100-preview.4.23260.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(287,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [/Users/stgi/repos/ConsoleApp1/ConsoleApp1.csproj]
/Users/stgi/repos/ConsoleApp1/Program.cs(1,18): error CS1003: Syntax error, ',' expected [/Users/stgi/repos/ConsoleApp1/ConsoleApp1.csproj]

Build FAILED.

/Users/stgi/repos/ConsoleApp1/Program.cs(1,18): error CS1003: Syntax error, ',' expected [/Users/stgi/repos/ConsoleApp1/ConsoleApp1.csproj]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.57
```

Okay we see it did fail, but why and where? Remember this is just a very small sample, imagine you have a big application with maybe mutliple errors!

## The new way
Let's try the same with the new terminal logger. For that we just add the `--tl` flag to the `dotnet build` command:
```
dotnet build --tl
```

```
The output is:
MSBuild version 17.7.0-preview-23251-02+59879b095 for .NET
Restore complete (0.3s)
  ConsoleApp1 failed with errors (0.2s)
    ? /Users/stgi/repos/ConsoleApp1/Program.cs(1,18): error CS1003: Syntax error, ',' expected

Build failed with errors in 0.6s
```

We get colors, and an icon pointing directly in the right direction! But not only that, but if your terminal supports it, it has a nice new way of indicating what is going on:

![terminal](https://linkdotnetblog.azureedge.net/blog/20230531_TerminalLogger/Terminal.webp)

## GitHub Actions
If you are using GitHub Actions, the new logger will not do much for you in addition. I will directly quote the docs from msbuild here:

> 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.

Unfortunately, GitHub Actions does redirect the standard output, so we don't get the nice new features. 

## Conclusion
The new logger is a great improvement over the old one. It is much easier to read and understand. If you want to know more, check out the official [documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-build#options).