Skip to content

Commit 3ab3f18

Browse files
committed
version
1 parent c89b814 commit 3ab3f18

File tree

1 file changed

+83
-83
lines changed

1 file changed

+83
-83
lines changed

articles/azure-monitor/app/ilogger.md

Lines changed: 83 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,52 @@ In this article, you'll learn how to capture logs with Application Insights in .
2222
2323
## ASP.NET Core applications
2424

25-
To add Application Insights logging to ASP.NET Core applications, use the `Microsoft.Extensions.Logging.ApplicationInsights` NuGet provider package.
25+
To add Application Insights logging to ASP.NET Core applications:
2626

27-
1. Install the [`Microsoft.Extensions.Logging.ApplicationInsights`][nuget-ai] NuGet package.
27+
1. Install the [`Microsoft.Extensions.Logging.ApplicationInsights`][nuget-ai].
2828

2929
1. Add `ApplicationInsightsLoggerProvider`:
3030

31+
# [.NET 6.0+](#tab/dotnet6)
32+
33+
```csharp
34+
using Microsoft.Extensions.Logging.ApplicationInsights;
35+
36+
var builder = WebApplication.CreateBuilder(args);
37+
38+
// Add services to the container.
39+
40+
builder.Services.AddControllers();
41+
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
42+
builder.Services.AddEndpointsApiExplorer();
43+
builder.Services.AddSwaggerGen();
44+
45+
builder.Logging.AddApplicationInsights(
46+
configureTelemetryConfiguration: (config) =>
47+
config.ConnectionString = builder.Configuration.GetConnectionString("APPLICATIONINSIGHTS_CONNECTION_STRING"),
48+
configureApplicationInsightsLoggerOptions: (options) => { }
49+
);
50+
51+
builder.Logging.AddFilter<ApplicationInsightsLoggerProvider>("your-category", LogLevel.Trace);
52+
53+
var app = builder.Build();
54+
55+
// Configure the HTTP request pipeline.
56+
if (app.Environment.IsDevelopment())
57+
{
58+
app.UseSwagger();
59+
app.UseSwaggerUI();
60+
}
61+
62+
app.UseHttpsRedirection();
63+
64+
app.UseAuthorization();
65+
66+
app.MapControllers();
67+
68+
app.Run();
69+
```
70+
3171
# [.NET 5.0](#tab/dotnet5)
3272

3373
```csharp
@@ -72,46 +112,6 @@ namespace WebApplication
72112
}
73113
```
74114

75-
# [.NET 6.0+](#tab/dotnet6)
76-
77-
```csharp
78-
using Microsoft.Extensions.Logging.ApplicationInsights;
79-
80-
var builder = WebApplication.CreateBuilder(args);
81-
82-
// Add services to the container.
83-
84-
builder.Services.AddControllers();
85-
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
86-
builder.Services.AddEndpointsApiExplorer();
87-
builder.Services.AddSwaggerGen();
88-
89-
builder.Logging.AddApplicationInsights(
90-
configureTelemetryConfiguration: (config) =>
91-
config.ConnectionString = builder.Configuration.GetConnectionString("APPLICATIONINSIGHTS_CONNECTION_STRING"),
92-
configureApplicationInsightsLoggerOptions: (options) => { }
93-
);
94-
95-
builder.Logging.AddFilter<ApplicationInsightsLoggerProvider>("your-category", LogLevel.Trace);
96-
97-
var app = builder.Build();
98-
99-
// Configure the HTTP request pipeline.
100-
if (app.Environment.IsDevelopment())
101-
{
102-
app.UseSwagger();
103-
app.UseSwaggerUI();
104-
}
105-
106-
app.UseHttpsRedirection();
107-
108-
app.UseAuthorization();
109-
110-
app.MapControllers();
111-
112-
app.Run();
113-
```
114-
115115
---
116116

117117
With the NuGet package installed, and the provider being registered with dependency injection, the app is ready to log. With constructor injection, either <xref:Microsoft.Extensions.Logging.ILogger> or the generic-type alternative <xref:Microsoft.Extensions.Logging.ILogger%601> is required. When these implementations are resolved, `ApplicationInsightsLoggerProvider` will provide them. Logged messages or exceptions will be sent to Application Insights.
@@ -143,13 +143,51 @@ For more information, see [Logging in ASP.NET Core](/aspnet/core/fundamentals/lo
143143

144144
## Console application
145145

146-
To add Application Insights logging to console applications, first install the following packages:
146+
To add Application Insights logging to console applications, first install the following NuGet packages:
147147

148-
* [`Microsoft.Extensions.Logging.ApplicationInsights`][nuget-ai] NuGet provider package.
149-
* [`Microsoft.Extensions.DependencyInjection`][nuget-ai] NuGet provider package.
148+
* [`Microsoft.Extensions.Logging.ApplicationInsights`][nuget-ai]
149+
* [`Microsoft.Extensions.DependencyInjection`][nuget-ai]
150150

151151
The following example uses the Microsoft.Extensions.Logging.ApplicationInsights package and demonstrates the default behavior for a console application. The Microsoft.Extensions.Logging.ApplicationInsights package should be used in a console application or whenever you want a bare minimum implementation of Application Insights without the full feature set such as metrics, distributed tracing, sampling, and telemetry initializers.
152152

153+
# [.NET 6.0+](#tab/dotnet6)
154+
155+
```csharp
156+
using Microsoft.ApplicationInsights.Channel;
157+
using Microsoft.ApplicationInsights.Extensibility;
158+
using Microsoft.Extensions.DependencyInjection;
159+
using Microsoft.Extensions.Logging;
160+
161+
using var channel = new InMemoryChannel();
162+
163+
try
164+
{
165+
IServiceCollection services = new ServiceCollection();
166+
services.Configure<TelemetryConfiguration>(config => config.TelemetryChannel = channel);
167+
services.AddLogging(builder =>
168+
{
169+
// Only Application Insights is registered as a logger provider
170+
builder.AddApplicationInsights(
171+
configureTelemetryConfiguration: (config) => config.ConnectionString = "<YourConnectionString>",
172+
configureApplicationInsightsLoggerOptions: (options) => { }
173+
);
174+
});
175+
176+
IServiceProvider serviceProvider = services.BuildServiceProvider();
177+
ILogger<Program> logger = serviceProvider.GetRequiredService<ILogger<Program>>();
178+
179+
logger.LogInformation("Logger is working...");
180+
}
181+
finally
182+
{
183+
// Explicitly call Flush() followed by Delay, as required in console apps.
184+
// This ensures that even if the application terminates, telemetry is sent to the back end.
185+
channel.Flush();
186+
187+
await Task.Delay(TimeSpan.FromMilliseconds(1000));
188+
}
189+
```
190+
153191
# [.NET 5.0](#tab/dotnet5)
154192

155193
```csharp
@@ -201,44 +239,6 @@ namespace ConsoleApp
201239

202240
```
203241

204-
# [.NET 6.0+](#tab/dotnet6)
205-
206-
```csharp
207-
using Microsoft.ApplicationInsights.Channel;
208-
using Microsoft.ApplicationInsights.Extensibility;
209-
using Microsoft.Extensions.DependencyInjection;
210-
using Microsoft.Extensions.Logging;
211-
212-
using var channel = new InMemoryChannel();
213-
214-
try
215-
{
216-
IServiceCollection services = new ServiceCollection();
217-
services.Configure<TelemetryConfiguration>(config => config.TelemetryChannel = channel);
218-
services.AddLogging(builder =>
219-
{
220-
// Only Application Insights is registered as a logger provider
221-
builder.AddApplicationInsights(
222-
configureTelemetryConfiguration: (config) => config.ConnectionString = "<YourConnectionString>",
223-
configureApplicationInsightsLoggerOptions: (options) => { }
224-
);
225-
});
226-
227-
IServiceProvider serviceProvider = services.BuildServiceProvider();
228-
ILogger<Program> logger = serviceProvider.GetRequiredService<ILogger<Program>>();
229-
230-
logger.LogInformation("Logger is working...");
231-
}
232-
finally
233-
{
234-
// Explicitly call Flush() followed by Delay, as required in console apps.
235-
// This ensures that even if the application terminates, telemetry is sent to the back end.
236-
channel.Flush();
237-
238-
await Task.Delay(TimeSpan.FromMilliseconds(1000));
239-
}
240-
```
241-
242242
---
243243

244244
## Frequently asked questions

0 commit comments

Comments
 (0)