dotnet / dotnet/roslynator

Feature Request: Refactor log message to use LoggerMessageAttribute

Open
#1,017 2 comments 1 reaction 1 assignee Claimed by @pwelter34 View on GitHub
Area-Refactorings Feature Request
Dominant language
C#
Stars
3.5k
Forks
294
Avg merge
2h 30m
Merged PRs (30d)
4

Description

A very useful refactor would be to refactor logger.LogDebug() into the performance optimized LoggerMessageAttribute method.

Reference:
* https://learn.microsoft.com/en-us/dotnet/core/extensions/logger-message-generator
* https://learn.microsoft.com/en-us/dotnet/core/extensions/high-performance-logging

**Before Refactor**:

```csharp
public class Program
{
private readonly ILogger _logger;

public Program(ILogger logger)
{
_logger = logger;
}

void Main(string[] args)
{
var message = "Blah";
_logger.LogDebug("This is a message: {message}", message);
}
}
```

**After Refactor**:

```csharp
public partial class Program
{
private readonly ILogger _logger;

public Program(ILogger logger)
{
_logger = logger;
}

void Main(string[] args)
{
var message = "Blah";
LogMessage(_logger, message);
}

[LoggerMessage(1000, LogLevel.Debug, "This is a message: {message}")]
static partial void LogMessage(ILogger logger, string message);
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.