Logging in ASP.net Core 6! We should always add error login in our program and it should be in the better by now.
What do I mean, Logging frameworks and libraries, such as log4net, NLog, elmah, and Serilog, are widely used by developers for debugging code in the .Net ecosystem. These tools are known for their simplicity, ease of use, and effectiveness in capturing log data. However, while these logging tools are valuable, they may not be sufficient on their own and not free.
In this article, I am going to share a free NuGet package which will help you do to the following in the free of cost and package name is RSEasyExceptionHandler.
https://www.nuget.org/packages/RSEasyExceptionHandler/
The RS EasyExceptionHandling helper library developed by Mr. Ravinder Singh (ਰਵਿੰਦਰ ਸਿੰਘ), it helps you to manage error handling in your ASP.Net Core Web API or Web Site. So no need to write code for error loging for your project. The library supports ASP.NET Core 6 for now.
Requirements Requires .NET 6.0.
Following Nuget packages
Run the following command to install the package using the .NET CLI:
dotnet add package RSEasyExceptionHandler
Alternatively, from the Package Manager Console or Developer PowerShell, run the following command to install the latest version:
Install-Package RSEasyExceptionHandler
Alternatively, use the NuGet Package Manager for Visual Studio or the NuGet window for JetBrains Rider, then search for Twilio.AspNet.Core and install the package.
Open Program.cs class and regester <i>AddRS_ErrorHandlingMiddleware</i> Dependency near builder.Services.AddSwaggerGen();
builder.Services.AddRS_ErrorHandlingMiddleware();
Note: Devloper can set own database name and location in the project. 1st create a folder like "Databaes" at root folder and then set "Data Source=database\RSAppErrorsLog.db" like following
builder.Services.AddRS_ErrorHandlingMiddleware("Data Source=database\\MyAppErrorsLog.db");
Next add following code lines in Program.cs near app.Run();
RSDependencyInjection.SetupLogDataBase(app.Services.CreateScope());
app.UseMiddleware<RS_ErrorHandlingMiddleware>();
Add SMTP Settings in appsettings.json
"RSError_EmailSenderSMTP": {
"Host": "smtp-host.sendinblue.com",
"Port": 587,
"EnableSSL": true,
"Username": "login email address",
"Password": "password",
"TL_Emails": "", //Team Lead or Project Manager emails (CC)
"Dev_Emails": "ravinder25886@gmail.com", //Development team emails(TO)
"enable_error_notification": false // true= will send mail and false mean off mailing
}
We have developed very user friendly library so that developers can read error log without any hard work.
For read create a API controller and past following code. Now, you can show error log in your front end.
[Route("api/[controller]")]
[ApiController]
public class ErrorLogController : ControllerBase
{
private readonly IErrorLogService _errorLogService;
public ErrorLogController(IErrorLogService errorLogService)
{
_errorLogService = errorLogService;
}
[HttpGet(Name = "GetErrorLog")]
public async Task<IActionResult> Get([FromQuery] PaginationFilter filter)
{
return Ok(await _errorLogService.GetListAsync(filter));
}
}
Delete log functions
[HttpPost]
[Route("DeleteAll")]
public async Task<IActionResult> DeleteAll(CancellationToken cancellationToken)
{
return Ok(await _errorLogCommandsService.DeleteAllAsync(cancellationToken));
}
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteAll(Guid id, CancellationToken cancellationToken)
{
return Ok(await _errorLogCommandsService.DeleteByIdAsync(id, cancellationToken));
}
I hope this package will save your time, if you have any issue with NuGet package then please contact on https://www.theravinder.com/contact
Thanks, for reading the blog, I hope it helps you. Please share this link on your social media accounts so that others can read our valuable content. Share your queries with our expert team and get Free Expert Advice for Your Business today.
Hire me on Linkedin
My portfolio