Improve log filter example (#5406)
This commit is contained in:
parent
123c0b4b69
commit
df2abe8c0a
|
|
@ -5,37 +5,52 @@ using Microsoft.Extensions.Logging;
|
|||
using OpenTelemetry.Logs;
|
||||
using OpenTelemetry.Resources;
|
||||
|
||||
namespace CustomizingTheSdk;
|
||||
|
||||
public class Program
|
||||
var loggerFactory = LoggerFactory.Create(builder =>
|
||||
{
|
||||
public static void Main()
|
||||
builder.AddOpenTelemetry(logging =>
|
||||
{
|
||||
using var loggerFactory = LoggerFactory.Create(builder =>
|
||||
{
|
||||
builder.AddOpenTelemetry(options =>
|
||||
{
|
||||
options.IncludeScopes = true;
|
||||
options.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(
|
||||
serviceName: "MyService",
|
||||
serviceVersion: "1.0.0"));
|
||||
options.AddConsoleExporter();
|
||||
});
|
||||
});
|
||||
logging.IncludeScopes = true;
|
||||
logging.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(
|
||||
serviceName: "MyService",
|
||||
serviceVersion: "1.0.0"));
|
||||
logging.AddConsoleExporter();
|
||||
});
|
||||
});
|
||||
|
||||
var logger = loggerFactory.CreateLogger<Program>();
|
||||
var logger = loggerFactory.CreateLogger<Program>();
|
||||
|
||||
logger.LogInformation("Hello from {name} {price}.", "tomato", 2.99);
|
||||
logger.LogWarning("Hello from {name} {price}.", "tomato", 2.99);
|
||||
logger.LogError("Hello from {name} {price}.", "tomato", 2.99);
|
||||
logger.FoodPriceChanged("artichoke", 9.99);
|
||||
|
||||
// log with scopes
|
||||
using (logger.BeginScope(new List<KeyValuePair<string, object>>
|
||||
{
|
||||
new KeyValuePair<string, object>("store", "Seattle"),
|
||||
}))
|
||||
{
|
||||
logger.LogInformation("Hello from {food} {price}.", "tomato", 2.99);
|
||||
}
|
||||
}
|
||||
using (logger.BeginScope(new List<KeyValuePair<string, object>>
|
||||
{
|
||||
new KeyValuePair<string, object>("store", "Seattle"),
|
||||
}))
|
||||
{
|
||||
logger.FoodPriceChanged("truffle", 999.99);
|
||||
}
|
||||
|
||||
logger.FoodRecallNotice(
|
||||
brandName: "Contoso",
|
||||
productDescription: "Salads",
|
||||
productType: "Food & Beverages",
|
||||
recallReasonDescription: "due to a possible health risk from Listeria monocytogenes",
|
||||
companyName: "Contoso Fresh Vegetables, Inc.");
|
||||
|
||||
// Dispose logger factory before the application ends.
|
||||
// This will flush the remaining logs and shutdown the logging pipeline.
|
||||
loggerFactory.Dispose();
|
||||
|
||||
internal static partial class LoggerExtensions
|
||||
{
|
||||
[LoggerMessage(LogLevel.Information, "Food `{name}` price changed to `{price}`.")]
|
||||
public static partial void FoodPriceChanged(this ILogger logger, string name, double price);
|
||||
|
||||
[LoggerMessage(LogLevel.Critical, "A `{productType}` recall notice was published for `{brandName} {productDescription}` produced by `{companyName}` ({recallReasonDescription}).")]
|
||||
public static partial void FoodRecallNotice(
|
||||
this ILogger logger,
|
||||
string brandName,
|
||||
string productDescription,
|
||||
string productType,
|
||||
string recallReasonDescription,
|
||||
string companyName);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@ It is not supported to add Processors after building the `LoggerFactory`.
|
|||
```csharp
|
||||
var loggerFactory = LoggerFactory.Create(builder =>
|
||||
{
|
||||
builder.AddOpenTelemetry(options =>
|
||||
builder.AddOpenTelemetry(logging =>
|
||||
{
|
||||
options.AddProcessor(...)
|
||||
logging.AddProcessor(...);
|
||||
});
|
||||
});
|
||||
```
|
||||
|
|
@ -72,9 +72,9 @@ The snippet below shows configuring a custom `ResourceBuilder` to the provider.
|
|||
```csharp
|
||||
var loggerFactory = LoggerFactory.Create(builder =>
|
||||
{
|
||||
builder.AddOpenTelemetry(options =>
|
||||
builder.AddOpenTelemetry(logging =>
|
||||
{
|
||||
options.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(
|
||||
logging.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(
|
||||
serviceName: "MyService",
|
||||
serviceVersion: "1.0.0"));
|
||||
});
|
||||
|
|
@ -107,8 +107,8 @@ and also defines "Warning" as the minimum `LogLevel` for a user defined category
|
|||
These rules as defined only apply to the `OpenTelemetryLoggerProvider`.
|
||||
|
||||
```csharp
|
||||
ILoggingBuilder.AddFilter<OpenTelemetryLoggerProvider>("*", LogLevel.Error);
|
||||
ILoggingBuilder.AddFilter<OpenTelemetryLoggerProvider>("category name", LogLevel.Warning);
|
||||
builder.AddFilter<OpenTelemetryLoggerProvider>("*", LogLevel.Error);
|
||||
builder.AddFilter<OpenTelemetryLoggerProvider>("MyProduct.MyLibrary.MyClass", LogLevel.Warning);
|
||||
```
|
||||
|
||||
## Learn more
|
||||
|
|
|
|||
Loading…
Reference in New Issue