From 4f52e64cad5b18c778c7d9878dbdcf59af6871af Mon Sep 17 00:00:00 2001 From: Heinrichs <Heinrichs@itc.rwth-aachen.de> Date: Fri, 14 Jul 2023 13:45:33 +0200 Subject: [PATCH] Fix: Improve logging (coscine/issues#2568) --- src/KPI Generator/nlog.config | 79 ++++++++++++++++++++++++++++------- 1 file changed, 65 insertions(+), 14 deletions(-) diff --git a/src/KPI Generator/nlog.config b/src/KPI Generator/nlog.config index 95fae67..0a33053 100644 --- a/src/KPI Generator/nlog.config +++ b/src/KPI Generator/nlog.config @@ -1,30 +1,81 @@ <?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" - throwExceptions="true" + throwConfigExceptions="true" + throwExceptions="false" internalLogFile="Logs/internal-nlog.txt" internalLogLevel="Trace"> <targets> <!-- Write logs to File --> - <target xsi:type="File" name="fileLog" fileName="C:/coscine/logs/${assembly-name}/${assembly-version}/log-${shortdate}.log" > - <layout xsi:type="JsonLayout" EscapeForwardSlash="true"> - <attribute layout="${longdate}" name="Timestamp"/> - <attribute layout="${level:upperCase=true}" name="Level"/> - <attribute layout="${message}" name="Message"/> - <attribute layout="${exception:format=tostring,StackTrace}" name="Exception"/> - <attribute layout="${ndlc}" name="Context"/> - <attribute layout="${event-properties:item=Metric}" name="Alarm" encode="false"/> - <attribute name="EventProperties" encode="false" > - <layout xsi:type='JsonLayout' includeAllProperties="true" maxRecursionLimit="2"/> - </attribute> - </layout> + <target xsi:type="FallbackGroup" + name="fileGroup"> + <target + xsi:type="File" + name="fileLogD" + fileName="D:/coscine/logs/${assembly-name}/${assembly-version}/log-${shortdate}.log" + maxArchiveFiles="7" + > + <layout xsi:type="CompoundLayout"> + <layout xsi:type="JsonLayout" EscapeForwardSlash="true"> + <attribute layout="${longdate}" name="Timestamp"/> + <attribute layout="${level:upperCase=true}" name="Level"/> + <attribute layout="${message}" name="Message"/> + <attribute layout="${exception:format=tostring,StackTrace}" name="Exception"/> + <attribute layout="${ndlc}" name="Context"/> + <attribute layout="${event-properties:item=Metric}" name="Alarm" encode="false"/> + <attribute name="EventProperties" encode="false" > + <layout xsi:type='JsonLayout' includeAllProperties="true" maxRecursionLimit="2"/> + </attribute> + </layout> + <layout xsi:type='SimpleLayout' text="," /> + </layout> + </target> + <target + xsi:type="File" + name="fileLogC" + fileName="C:/coscine/logs/${assembly-name}/${assembly-version}/log-${shortdate}.log" + maxArchiveFiles="7" + > + <layout xsi:type="CompoundLayout"> + <layout xsi:type="JsonLayout" EscapeForwardSlash="true"> + <attribute layout="${longdate}" name="Timestamp"/> + <attribute layout="${level:upperCase=true}" name="Level"/> + <attribute layout="${message}" name="Message"/> + <attribute layout="${exception:format=tostring,StackTrace}" name="Exception"/> + <attribute layout="${ndlc}" name="Context"/> + <attribute layout="${event-properties:item=Metric}" name="Alarm" encode="false"/> + <attribute name="EventProperties" encode="false" > + <layout xsi:type='JsonLayout' includeAllProperties="true" maxRecursionLimit="2"/> + </attribute> + </layout> + <layout xsi:type='SimpleLayout' text="," /> + </layout> + </target> + </target> + + <!-- Write colored logs to Console --> + <target name="consoleLog" xsi:type="ColoredConsole" layout="[${uppercase:${level}}]: ${message}"> + <highlight-row condition="level == LogLevel.Debug" foregroundColor="DarkGray" /> + <highlight-row condition="level == LogLevel.Info" foregroundColor="White" /> + <highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow" /> + <highlight-row condition="level == LogLevel.Error" foregroundColor="DarkRed" /> + <highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red" backgroundColor="White" /> </target> </targets> <rules> <!--All logs, including from Microsoft, Level Trace--> - <logger name="*" minlevel="Trace" writeTo="fileLog" /> + <logger name="*" minlevel="Trace" writeTo="fileGroup"> + </logger> + + <!--All logs, including from Microsoft, Level Info--> + <logger name="*" minlevel="Info" writeTo="consoleLog"> + <filters defaultAction="Log"> + <when condition="contains('${ndlc}','/api/heartbeat')" action="Ignore"/> + </filters> + </logger> + </rules> </nlog> \ No newline at end of file -- GitLab