Polly
Serilog
Our great sponsors
Polly | Serilog | |
---|---|---|
52 | 54 | |
12,900 | 6,895 | |
1.4% | 1.6% | |
9.8 | 7.0 | |
2 days ago | 4 days ago | |
C# | C# | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Polly
-
Http calls on mobile, what is the preferred way / best practice
Another question that rises is, would it be better to use some HttpClient package to handle the requests, like Refit in combination with Polly. But then again, it seems Refit also uses the HttpClient factory, which was a bad thing according to the previous?
-
[Question] HttpClient does not recover from error
D'Oh! Sorry, not PolySharp. I meant Polly. Too many similarly-named libraries!
-
What your hidden nuget gems ?
It's in no way hidden. But I use Polly all the time.
-
Message Queueing
Depending if the sender or the reciever is down, you can also try Polly http://www.thepollyproject.org/
-
Ask HN: What's the best source code you've read?
I don't know if it is the most elegant, or concise, or l33t, but I am in love with Polly https://github.com/App-vNext/Polly
-
Implementing resilient applications with API Gateway (Circuit breaker)
One solution can be implementing the circuit breaker pattern for each microservice by using proven .NET libraries like Polly which is a very time-consuming and sometimes even challenging task.
-
Any recommendation of download library?
it doesn't even throw when exception occurred, just a line of "Debug.Break", which means I can't use it with Polly
- ASP.NET 6 - Rate limit injected SMS service
-
Creating and Using HTTP Client SDKs in .NET 6
💡 Resiliency patterns - retry, cache, fallback, etc.: Very often, in distrusted systems world you need to ensure high availability by incorporating some resilience policies. Luckily, we have a built-in solution to build and define policies in .NET - Polly. There is out-of-the-box integration with IHttpClientFactory provided by Polly. This uses a convenience method, IHttpClientBuilder.AddTransientHttpErrorPolicy. It configures a policy to handle errors typical of HTTP calls: HttpRequestException, HTTP 5XX status codes (server errors), HTTP 408 status code (request timeout).
-
Accurate
One of my favorite is Polly which provides a simple Circuit Breaker implementation plus other resiliency tools.
Serilog
-
Microsoft Entity Framework Core 8 samples
These projects use dependency injection for connections and have no logging although they are ready to log to the console via SeriLog setup in Program.cs.
-
Using toast notifications in Windows Forms
Captured in public static void OnActivated() and note Log is SeriLog.
-
How to set up Serilog "Enrichers"?
"Serilog": { "Using": [ "Serilog.Sinks.File" ], "Enrich": [ "WithHttpRequestId", "WithExceptionDetails", "WithClientIp" ], "MinimumLevel": { "Default": "Information" }, "WriteTo": [ { "Name": "File", "Args": { "path": "../../../../../Logs/MyApp/MyApp-.log", "rollingInterval": "Day", "retainedFileCountLimit": "7", "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {CorrelationId} {Level:u3}] {Username} {Message:lj}{NewLine}{Exception} {Properties:lj}{NewLine}" } } ] } 👆 I got the enricher names from serilog's wiki. The idea was to log the HTTPRequestId, ClientIp, and automagically log the details of every exception thrown (without having to do _logger.LogError(...)). However I don't see those details in the logs. In Program.cs: ``` var logger = new LoggerConfiguration() .ReadFrom.Configuration(builder.Configuration) .Enrich.FromLogContext() .CreateLogger();
- How to log to an Excel file?
-
How can I fix logger maximum destructuring reached error when using Serilog C#?
You could also write a custom destructuring policy, assuming it's a flurl-specific public exception type and you only need certain properties of it. You'd implement IDestructuringPolicy and then add it to the configuration:
-
getting started with loggin
Serilog, it has sinks for pretty much everything so you can easily swap down the line. https://github.com/serilog/serilog/wiki/Provided-Sinks
-
A command line tool that converts GraphQL schemas to Karate API tests
Serilog for logging
-
Serilog in ASP.NET Core 7.0 – Structured Logging using Serilog in ASP.NET Core 7.0
ILogger is just an abstraction and it doesn't provide many implementations besides .NET Core's built-in console logging. Serilog with its many sinks is layed on top of ILogger (which is what it was created for) and you can configure all types of logging.
You have to do the same thing in Serilog if you want to enrich https://github.com/serilog/serilog/wiki/Enrichment
What are some alternatives?
NLog - NLog - Advanced and Structured Logging for Various .NET Platforms
Log4Net - Apache Log4net is a versatile, feature-rich, efficient logging API and backend for .NET
ELMAH - Error Logging Modules & Handlers for ASP.NET
MediatR - Simple, unambitious mediator implementation in .NET
Hangfire - An easy way to perform background job processing in .NET and .NET Core applications. No Windows Service or separate process required
Sentry - Sentry SDK for .NET
opentelemetry-specification - Specifications for OpenTelemetry
FluentValidation - A popular .NET validation library for building strongly-typed validation rules.
Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
Refit - The automatic type-safe REST library for .NET Core, Xamarin and .NET. Heavily inspired by Square's Retrofit library, Refit turns your REST API into a live interface.
Semantic Logging Application Block (SLAB) - Supporting semantic/structured logging for .NET
Flurl.Http - Fluent URL builder and testable HTTP client for .NET