AG.LoggingV2
1.0.0
dotnet add package AG.LoggingV2 --version 1.0.0
NuGet\Install-Package AG.LoggingV2 -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AG.LoggingV2" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AG.LoggingV2" Version="1.0.0" />
<PackageReference Include="AG.LoggingV2" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AG.LoggingV2 --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AG.LoggingV2, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AG.LoggingV2@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AG.LoggingV2&version=1.0.0
#tool nuget:?package=AG.LoggingV2&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AG.LoggingV2
AG.LoggingV2 is a comprehensive logging and monitoring solution for .NET microservices. It provides centralized logging, distributed tracing, correlation ID management, and request/response monitoring capabilities.
Features
📝 Centralized Logging
- Elasticsearch integration
- File logging with rotation
- Console logging
- Structured logging with Serilog
🔍 Distributed Tracing
- OpenTelemetry integration
- OTLP exporter support
- ASP.NET Core and HTTP client instrumentation
- Custom activity source support
🔗 Correlation
- Correlation ID management
- Upstream correlation ID propagation
- Trace ID integration
- Custom header support
📊 Metrics
- Request/Response metrics
- Endpoint performance tracking
- Custom metric support
- Prometheus integration
Installation
dotnet add package AG.LoggingV2
Quick Start
- Add AG.LoggingV2 to your services in
Program.cs
:
builder.Services.AddAGLogging(
builder.Configuration,
logging =>
{
logging.ApplicationName = "YourApp";
logging.Environment = builder.Environment.EnvironmentName;
logging.Elasticsearch = new()
{
Enabled = true,
Url = "http://localhost:9200",
IndexFormat = "yourapp-logs-{0}-{1}"
};
},
tracing =>
{
tracing.ServiceName = "YourApp";
tracing.ServiceVersion = "1.0.0";
tracing.Enabled = true;
tracing.ExportType = "OTLP";
tracing.ExportEndpoint = "localhost";
tracing.ExportPort = 4317;
});
- Add the middleware to your pipeline:
app.UseAGLogging();
Configuration
Logging Options
ApplicationName
: Your application nameEnvironment
: Environment name (e.g., Development, Production)Elasticsearch
: Elasticsearch sink configurationFileLogging
: File logging configurationConsoleLogging
: Console output configurationEnrichment
: Log enrichment optionsLogLevels
: Log level configuration
Tracing Options
ServiceName
: Your service nameServiceVersion
: Service versionExportType
: Trace exporter type (OTLP/Console)ExportEndpoint
: Exporter endpointExportPort
: Exporter portTags
: Custom trace tagsSampling
: Sampling configurationGatewayConfig
: Gateway-specific configuration
Examples
Adding Custom Tags to Traces
public class YourController : ControllerBase
{
private readonly ActivitySource _activitySource;
public YourController(ActivitySource activitySource)
{
_activitySource = activitySource;
}
[HttpGet]
public IActionResult Get()
{
using var activity = _activitySource.StartActivity("YourOperation");
activity?.SetTag("custom.tag", "value");
// Your code here
return Ok();
}
}
License
This project is licensed under the MIT License - see the LICENSE file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- Elastic.Apm.NetCoreAll (>= 1.31.0)
- OpenTelemetry (>= 1.11.2)
- OpenTelemetry.Api (>= 1.11.2)
- OpenTelemetry.Exporter.Console (>= 1.11.1)
- OpenTelemetry.Exporter.Jaeger (>= 1.5.1)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.11.2)
- OpenTelemetry.Extensions.Hosting (>= 1.11.1)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.11.0)
- OpenTelemetry.Instrumentation.Http (>= 1.11.0)
- prometheus-net.AspNetCore (>= 8.2.1)
- Serilog (>= 3.1.1)
- Serilog.AspNetCore (>= 8.0.1)
- Serilog.Enrichers.Environment (>= 2.3.0)
- Serilog.Enrichers.Process (>= 2.0.2)
- Serilog.Enrichers.Thread (>= 3.1.0)
- Serilog.Settings.Configuration (>= 8.0.0)
- Serilog.Sinks.Console (>= 5.0.1)
- Serilog.Sinks.Elasticsearch (>= 9.0.3)
- Serilog.Sinks.File (>= 5.0.0)
- Serilog.Sinks.Seq (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated | |
---|---|---|---|
1.0.0 | 259 | 3/10/2025 |