Skip to content

Commit 7818187

Browse files
authored
Merge pull request #22 from NiceOneFox/T17_Add_NLog
Close T17 Add NLog
2 parents dd5bfc1 + 5016f67 commit 7818187

File tree

5 files changed

+60
-10
lines changed

5 files changed

+60
-10
lines changed

backend/ServiceSimulation/Api/Api.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
<PackageReference Include="FluentValidation.AspNetCore" Version="10.4.0" />
1313
<PackageReference Include="FluentValidation.DependencyInjectionExtensions" Version="10.4.0" />
1414
<PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.2.0" />
15+
<PackageReference Include="NLog" Version="4.7.15" />
16+
<PackageReference Include="NLog.Schema" Version="4.7.15" />
17+
<PackageReference Include="NLog.Web.AspNetCore" Version="4.14.0" />
1518
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.3.1" />
1619
</ItemGroup>
1720

backend/ServiceSimulation/Api/Middlewares/CustomExceptionHandlerMiddleware.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ public class CustomExceptionHandlerMiddleware
88
{
99
private readonly RequestDelegate _next;
1010

11-
// private readonly ILogger _logger;
12-
public CustomExceptionHandlerMiddleware(RequestDelegate next)//,
13-
// ILogger<CustomExceptionHandlerMiddleware> logger)
11+
private readonly ILogger _logger;
12+
public CustomExceptionHandlerMiddleware(RequestDelegate next,
13+
ILogger<CustomExceptionHandlerMiddleware> logger)
1414
{
1515
_next = next;
16-
//_logger = logger;
16+
_logger = logger;
1717
}
1818

1919
public async Task Invoke(HttpContext context)
@@ -38,7 +38,7 @@ private Task HandleExceptionAsync(HttpContext context, Exception ex)
3838
case ValidationException validationException:
3939
statusCode = HttpStatusCode.BadRequest;
4040
result = JsonSerializer.Serialize(validationException.Errors);
41-
//_logger.LogDebug(validationException.Message);
41+
_logger.LogDebug(validationException.Message);
4242
break;
4343

4444
default:

backend/ServiceSimulation/Api/Program.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,20 @@
88
using Bll.Domain.Services;
99
using FluentValidation;
1010
using FluentValidation.AspNetCore;
11-
using System.Reflection;
11+
using NLog.Web;
1212

1313
var builder = WebApplication.CreateBuilder(args);
1414

1515
builder.Services.AddControllers().AddFluentValidation(fv =>
1616
{
17-
//fv.RegisterValidatorsFromAssembly(Assembly.GetExecutingAssembly());
1817
fv.RegisterValidatorsFromAssemblyContaining<InputParametersValidator>();
1918
});
19+
20+
#region Logger
21+
builder.Logging.ClearProviders();
22+
builder.Logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
23+
builder.Host.UseNLog();
24+
#endregion
2025
builder.Services.AddEndpointsApiExplorer();
2126
builder.Services.AddSwaggerGen();
2227

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
{
22
"Logging": {
33
"LogLevel": {
4-
"Default": "Information",
5-
"Microsoft.AspNetCore": "Warning"
4+
"Default": "Trace",
5+
"Microsoft": "Warning",
6+
"Microsoft.Hosting.Lifetime": "Information"
67
}
78
},
89
"AllowedHosts": "*"
9-
}
10+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
autoReload="true"
5+
internalLogLevel="Info"
6+
internalLogFile="c:\temp\internal-nlog-AspNetCore.txt">
7+
8+
<!-- enable asp.net core layout renderers -->
9+
<extensions>
10+
<add assembly="NLog.Web.AspNetCore"/>
11+
</extensions>
12+
13+
<!-- the targets to write to -->
14+
<targets>
15+
<!-- File Target for all log messages with basic details -->
16+
<target xsi:type="File" name="allfile" fileName="c:\temp\nlog-AspNetCore-all-${shortdate}.log"
17+
layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}" />
18+
19+
<!-- File Target for own log messages with extra web details using some ASP.NET core renderers -->
20+
<target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-AspNetCore-own-${shortdate}.log"
21+
layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}|${callsite}" />
22+
23+
<!--Console Target for hosting lifetime messages to improve Docker / Visual Studio startup detection -->
24+
<target xsi:type="Console" name="lifetimeConsole" layout="${MicrosoftConsoleLayout}" />
25+
</targets>
26+
27+
<!-- rules to map from logger name to target -->
28+
<rules>
29+
<!--All logs, including from Microsoft-->
30+
<logger name="*" minlevel="Trace" writeTo="allfile" />
31+
32+
<!--Output hosting lifetime messages to console target for faster startup detection -->
33+
<logger name="Microsoft.Hosting.Lifetime" minlevel="Info" writeTo="lifetimeConsole, ownFile-web" final="true" />
34+
35+
<!--Skip non-critical Microsoft logs and so log only own logs (BlackHole) -->
36+
<logger name="Microsoft.*" maxlevel="Info" final="true" />
37+
<logger name="System.Net.Http.*" maxlevel="Info" final="true" />
38+
39+
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
40+
</rules>
41+
</nlog>

0 commit comments

Comments
 (0)