Log Request and Response Details of your Actions in ASP.NET Core.
- Execution date time (TimeStamp)
- Execution duration (Elapsed)
- Action Arguments (like your ViewModels)
- ModelState (IsValid and Errors)
- Request Path (Host and QueryString and RouteValues)
- Request Method
- Request Cookies
- Request Headers
- User.Identity (UserName and IsAuthenticated and Claims)
- Response Cookies
- Response Headers
- Response StatusCode
- IpAddress
- UrlReferrer
- Exception if thrown
You can add your desired details like UserAgent info (such as browser, os, ... details) in
LogRequestAttribute.OnActionExecuting
Just put [LogRequest]
attribute on your actions or register it globally
public class HomeController : Controller
{
public HomeController()
{
}
[LogRequest]
public IActionResult Index(MyViewModel myViewModel)
{
return View();
}
[LogRequest]
public IActionResult Privacy()
{
throw new Exception("test");
return View();
}
}
Check out Program.cs
and Startup.cs
to see how to Configuration.
This uses Serilog and Serilog.AspNetCore for logging and MSSqlServer sink but you can use any other Sinks.