-
Notifications
You must be signed in to change notification settings - Fork 751
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding Microsoft.Extensions.Telemetry.Abstractions README #4670
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use Pascal case for log arguments (used in our code base).
Some past tense. Feel free to ignore if it does not matter.
src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/README.md
Outdated
Show resolved
Hide resolved
src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/README.md
Outdated
Show resolved
Hide resolved
It also adds the `LogProperties` attribute which can be applied to a an object parameter of a `LoggerMessage` method. It introspects the passed-in object and automatically adds tags for all its properties. This leads to more informative logs without the need for manual tagging of each property. | ||
|
||
```csharp | ||
[LoggerMessage(1, LogLevel.Information, "Detected a new temperature: {temperature}")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[LoggerMessage(1, LogLevel.Information, "Detected a new temperature: {temperature}")] | |
[LoggerMessage(1, LogLevel.Information, "Detected a new temperature: {Temperature}")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should match the parameter name, which is lower case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Examples in extensions
And the doc: https://learn.microsoft.com/en-us/dotnet/core/extensions/logger-message-generator#basic-usage
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep in mind that this is using a different generator which adds additional constraints and diagnostics (this is using Microsoft.Extensions.Telemetry.Abstractions logging generator)
I believe in the past I've seen warnings when parameter name doesn't exactly match the template, @geeknoid can you confirm?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I checked back and it does seem like this is not case-sensitive as you suggested, which also seems to be called out explicitly https://learn.microsoft.com/en-us/dotnet/core/extensions/logger-message-generator#case-insensitive-template-name-support . Anyway, since it's not a convention that we should upper case those, I've left it lowercase for now (I also hope it helps describing that what should match is paramter name as opposed to the parameter type, since in my example both are the same).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First letter can be either lowercased or uppercased, you can check Iliar's PR: #4584
src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/README.md
Outdated
Show resolved
Hide resolved
src/Libraries/Microsoft.Extensions.Telemetry.Abstractions/README.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Sébastien Ros <sebastienros@gmail.com>
Logging data can be enriched by adding custom log enrichers to the service collection. This can be done using specific implementations or generic types. | ||
|
||
```csharp | ||
// Using a specific implementation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
implementation
-> instance
?
builder.Services.AddLogEnricher<AnotherLogEnricher>(); | ||
``` | ||
|
||
Create custom log enrichers by implementing the `ILogEnricher` interface. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Worth mentioning IStaticLogEnricher
too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding Microsoft.Extensions.Telemetry.Abstractions README
Microsoft Reviewers: Open in CodeFlow