Skip to content

Commit fcc7f3f

Browse files
committed
Add controller + action filter logger
1 parent 148fc63 commit fcc7f3f

File tree

3 files changed

+44
-0
lines changed

3 files changed

+44
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using Microsoft.AspNetCore.Mvc;
2+
3+
namespace SerilogRequestLogging.Controllers
4+
{
5+
[ApiController]
6+
public class ApiController
7+
{
8+
[HttpGet("api")]
9+
public string SomeApiMethod()
10+
{
11+
return "Api called ok";
12+
}
13+
14+
}
15+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using Microsoft.AspNetCore.Mvc.Filters;
2+
using Serilog;
3+
4+
namespace SerilogRequestLogging
5+
{
6+
public class SerilogLoggingActionFilter : IActionFilter
7+
{
8+
private readonly IDiagnosticContext _diagnosticContext;
9+
public SerilogLoggingActionFilter(IDiagnosticContext diagnosticContext)
10+
{
11+
_diagnosticContext = diagnosticContext;
12+
}
13+
14+
public void OnActionExecuting(ActionExecutingContext context)
15+
{
16+
_diagnosticContext.Set("RouteData", context.ActionDescriptor.RouteValues);
17+
_diagnosticContext.Set("ActionName", context.ActionDescriptor.DisplayName);
18+
_diagnosticContext.Set("ActionId", context.ActionDescriptor.Id);
19+
_diagnosticContext.Set("ValidationState", context.ModelState.IsValid);
20+
}
21+
22+
public void OnActionExecuted(ActionExecutedContext context){}
23+
}
24+
}

SerilogRequestLogging/Startup.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ public Startup(IConfiguration configuration)
2424
// This method gets called by the runtime. Use this method to add services to the container.
2525
public void ConfigureServices(IServiceCollection services)
2626
{
27+
services.AddControllers(opts =>
28+
{
29+
opts.Filters.Add<SerilogLoggingActionFilter>();
30+
});
2731
services.AddRazorPages();
2832
}
2933

@@ -53,6 +57,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
5357

5458
app.UseEndpoints(endpoints =>
5559
{
60+
endpoints.MapControllers();
5661
endpoints.MapRazorPages();
5762
});
5863
}

0 commit comments

Comments
 (0)