Snafets.Extensions.Logging.TracesOnError.ApplicationInsights
1.2.0
See the version list below for details.
dotnet add package Snafets.Extensions.Logging.TracesOnError.ApplicationInsights --version 1.2.0
NuGet\Install-Package Snafets.Extensions.Logging.TracesOnError.ApplicationInsights -Version 1.2.0
<PackageReference Include="Snafets.Extensions.Logging.TracesOnError.ApplicationInsights" Version="1.2.0" />
paket add Snafets.Extensions.Logging.TracesOnError.ApplicationInsights --version 1.2.0
#r "nuget: Snafets.Extensions.Logging.TracesOnError.ApplicationInsights, 1.2.0"
// Install Snafets.Extensions.Logging.TracesOnError.ApplicationInsights as a Cake Addin #addin nuget:?package=Snafets.Extensions.Logging.TracesOnError.ApplicationInsights&version=1.2.0 // Install Snafets.Extensions.Logging.TracesOnError.ApplicationInsights as a Cake Tool #tool nuget:?package=Snafets.Extensions.Logging.TracesOnError.ApplicationInsights&version=1.2.0
Snafets.Extensions.Logging.TracesOnError
provides functionality to enrich log messages with all previous traces
Motivation
When an exception is thrown it is often hard to understand the context of the error. This library provides a way to enrich the log message with all previous traces. This can be very helpful to understand the context of the error. Enabling LogLevel == Trace
is often not feasable as in modern cloud environements the cost of logging can often exeed the cost of the application itself. By only logging debug information when an error occurs the cost of logging can be reduced.
Usage
During Setup register TracesOnError
, also some parameters are possible to add a logsink or to setup some options.
((ILoggingBuilder)builder).AddTracesOnError();
Log Messages normally, which has no effects on other loggers. But when specifying a ITracesOnErrorLogSink
then the error messages are writen to that sink.
((ILogger)logger).LogError(exception, "error message");
To encance the log messages of other loggers use our new extension methods for ILogger
:
((ILogger)logger).LogErrorWithTraces(exception, "error message");
Application Insights
To use Application Insights as a log sink, you can use the Snafets.Extensions.Logging.TracesOnError.ApplicationInsights
package.
TelemetryClient telemetryClient = ...; // initialize the client as you would normally do
((ILoggingBuilder)builder).AddTracesOnErrorApplicationInsights(telemetryClient);
Examples
Look for some example implementations in our examples folder.
How can I contribute?
You are welcome to contribute!
License
Snafets.Extensions.Logging.TracesOnError is licensed under the MIT license.
Code Quality
This Project uses SonarCloud for code quality checks. You can find the latest analysis at the SonarCloud Dashboard.
Nuget.org
The package is available on Nuget.org
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.ApplicationInsights (>= 2.22.0)
- Snafets.Extensions.Logging.TracesOnError (>= 1.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.