1 Commits

Author SHA1 Message Date
c679197fa5 new nlog.config file 2026-01-15 22:02:14 +01:00
2 changed files with 22 additions and 80 deletions

2
.gitignore vendored
View File

@@ -400,5 +400,3 @@ FodyWeavers.xsd
# JetBrains Rider
*.sln.iml
/.idea
/SmartHouse.Services/.idea/.idea.SmartHouse.Services/.idea

View File

@@ -1,90 +1,34 @@
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwConfigExceptions="true"
internalLogLevel="Warn"
internalLogFile="logs/nlog-internal.log">
throwExceptions="false"
internalLogLevel="Off" internalLogFile="c:\temp\internal-apiservice_nlog.txt" >
<!-- ========================= -->
<!-- VARIABLES -->
<!-- ========================= -->
<variable name="appName" value="MyApp" />
<variable name="environment" value="${aspnet-environment:whenEmpty=Production}" />
<variable name="logRoot" value="${basedir}/logs" />
<variable name="year" value="${date:format=yyyy}" />
<variable name="month" value="${date:format=MM}" />
<variable name="day" value="${date:format=dd}" />
<variable name="logDirectory" value="${basedir}\Log\${date:format=yy}\${date:format=MM}"/>
<!-- ========================= -->
<!-- LAYOUTS -->
<!-- ========================= -->
<layout name="jsonLayout" xsi:type="JsonLayout" includeAllProperties="true">
<attribute name="timestamp" layout="${date:format=o}" />
<attribute name="level" layout="${level}" />
<attribute name="logger" layout="${logger}" />
<attribute name="message" layout="${message}" />
<attribute name="exception" layout="${exception:format=ToString}" />
<attribute name="correlationId" layout="${mdlc:item=CorrelationId}" />
<attribute name="traceId" layout="${activityid}" />
<attribute name="environment" layout="${environment}" />
<attribute name="application" layout="${appName}" />
</layout>
<!-- ========================= -->
<!-- TARGETS -->
<!-- ========================= -->
<targets async="true">
<!-- Console (dev / Docker) -->
<target xsi:type="Console"
name="console"
layout="${jsonLayout}" />
<!-- App log -->
<target xsi:type="File"
name="appFile"
fileName="${logRoot}/${year}/${month}/${day}/app.log"
layout="${jsonLayout}"
concurrentWrites="true"
keepFileOpen="false" />
<!-- Error log -->
<target xsi:type="File"
name="errorFile"
fileName="${logRoot}/${year}/${month}/${day}/error.log"
layout="${jsonLayout}"
concurrentWrites="true"
keepFileOpen="false" />
<!-- Performance log -->
<target xsi:type="File"
name="performanceFile"
fileName="${logRoot}/${year}/${month}/${day}/perf.log"
layout="${jsonLayout}"
concurrentWrites="true"
keepFileOpen="false" />
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
<targets>
<target name="file" xsi:type="File" fileName="${logDirectory}\Log_${shortdate}.txt" layout="${longdate} [${pad:padding=8:fixedlength=true:PadCharacter=0:inner=${threadid}}] ${operationId} ${pad:padding=-5:fixedlength=true:inner=${level}} ${message}"/>
<target name="requestOnly" xsi:type="File" fileName="${logDirectory}\Requests_${shortdate}.txt" layout="${longdate} [${pad:padding=8:fixedlength=true:PadCharacter=0:inner=${threadid}}] ${pad:padding=-5:fixedlength=true:inner=${level}} ${message}"/>
<target name="fileFull" xsi:type="File" fileName="${logDirectory}\Log_Full_${shortdate}.txt" layout="${longdate} [${pad:padding=8:fixedlength=true:PadCharacter=0:inner=${threadid}}] ${pad:padding=-5:fixedlength=true:inner=${level}} ${pad:padding=36:fixedlength=true:PadCharacter= :inner=${operationId}} [${callsite:className=false:includeNamespace=false:fileName=true:includeSourcePath=false:methodName=true}] ${message}"/>
<target name="RequestResponseOnly" xsi:type="File" fileName="${logDirectory}\RequestResponseOnly_${shortdate}.txt" layout="${longdate} [${pad:padding=8:fixedlength=true:PadCharacter=0:inner=${threadid}}] ${pad:padding=-5:fixedlength=true:inner=${level}} ${pad:padding=36:fixedlength=true:PadCharacter= :inner=${operationId}} ${message}"/>
<target xsi:type="Debugger" name="debugger" layout="NLOG ${longdate} ${level} ${message}" />
<target name="error" xsi:type="File" fileName="${logDirectory}\Log_Error_${shortdate}.txt" layout="${longdate} [${pad:padding=8:fixedlength=true:PadCharacter=0:inner=${threadid}}] ${pad:padding=-5:fixedlength=true:inner=${level}} ${pad:padding=36:fixedlength=true:PadCharacter= :inner=${operationId}} [${callsite:className=false:includeNamespace=false:fileName=true:includeSourcePath=false:methodName=true}] ${message}"/>
</targets>
<!-- ========================= -->
<!-- RULES (MINIMAL) -->
<!-- ========================= -->
<rules>
<!-- Normal app flow -->
<logger name="*" minlevel="Info" writeTo="console,appFile" />
<!-- Errors -->
<logger name="*" minlevel="Error" writeTo="errorFile" />
<!-- Performance -->
<logger name="Performance.*" minlevel="Info" writeTo="performanceFile" />
<!-- Reduce framework noise -->
<logger name="Microsoft.*" maxlevel="Info" final="true" />
<logger name="System.*" maxlevel="Warn" final="true" />
<logger name="RequestResponse" minlevel="Trace" writeTo="RequestResponseOnly" final="true" />
<logger name="*" minlevel="Trace" writeTo="file" />
<logger name="Request" minlevel="Trace" writeTo="requestOnly" />
<logger name="*" minlevel="Trace" writeTo="fileFull" />
<logger name="*" minlevel="Trace" writeTo="debugger" />
<logger name="*" level="Error" writeTo="error" />
<logger name="Microsoft.EntityFrameworkCore.Database.Command" minlevel="Warn" writeTo="fileFull"/>
</rules>
</nlog>
</nlog>