<?xml version="1.0" encoding="utf-8" ?> <!-- XSD manual extracted from package NLog.Schema: https://www.nuget.org/packages/NLog.Schema--> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xsi:schemaLocation="NLog NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" internalLogFile="log//log-internal.log" internalLogLevel="Info" > <!-- the targets to write to --> <targets> <!-- write logs to file --> <!--${date}|${level:uppercase=true}|${message} ${exception}|${logger}|${all-event-properties}--> <!--keep this 2 forward slash, it both worked for windows and linux--> <target xsi:type="File" name="main_target" enableArchiveFileCompression="true" maxArchiveFiles="20" archiveAboveSize="50000000" archiveNumbering="Sequence" fileName="log//Main_${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss.fff} [${threadid}:${level:uppercase=true}]${logger} - ${message} ${exception}" /> <target xsi:type="File" name="communicator_target" enableArchiveFileCompression="true" maxArchiveFiles="20" archiveAboveSize="50000000" archiveNumbering="Sequence" fileName="log//Comm_${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss.fff} [${threadid}:${level:uppercase=true}]${message} ${exception}" /> <target xsi:type="File" name="universalApiAuditing_target" enableArchiveFileCompression="true" maxArchiveFiles="20" archiveAboveSize="50000000" archiveNumbering="Sequence" fileName="log//ApiAuditing_${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss.fff} [${threadid}:${level:uppercase=true}]${message} ${exception}" /> <target xsi:type="File" name="pumpHandler_target" enableArchiveFileCompression="true" maxArchiveFiles="20" archiveAboveSize="50000000" archiveNumbering="Sequence" fileName="log//PumpHandler_${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss.fff} [${threadid}:${level:uppercase=true}]${message} ${exception}" /> <target xsi:type="File" name="application_target" enableArchiveFileCompression="true" maxArchiveFiles="20" archiveAboveSize="50000000" archiveNumbering="Sequence" fileName="log//Application_${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss.fff} [${threadid}:${level:uppercase=true}]${logger} - ${message} ${exception}" /> <target xsi:type="File" name="performance_target" enableArchiveFileCompression="true" maxArchiveFiles="20" archiveAboveSize="50000000" archiveNumbering="Sequence" fileName="log//Performance_${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss.fff} [${threadid}:${level:uppercase=true}]${message} ${exception}" /> <target name="dynamicPrivateFile" xsi:type="AsyncWrapper"> <target name="innerTarget" xsi:type="File" enableArchiveFileCompression="true" maxArchiveFiles="20" archiveAboveSize="50000000" archiveNumbering="Sequence" fileName="log//${replace:searchFor=DynamicPrivate_:replaceWith=:inner=${logger}}_${date:format=yyyyMMdd}.log" layout="${date:format=HH\:mm\:ss.fff} [${threadid}:${level:uppercase=true}]${message} ${exception}"/> </target> </targets> <!-- rules to map from logger name to target --> <rules> <logger name="Main" minlevel="Trace" writeTo="main_target" /> <logger name="Communicator" minlevel="Error" writeTo="communicator_target" /> <logger name="StateMachineMessageCutter" minlevel="Info" writeTo="communicator_target" /> <logger name="UniversalApiAuditing" minlevel="Info" writeTo="universalApiAuditing_target" /> <logger name="PumpHandler" minlevel="Debug" writeTo="pumpHandler_target" /> <logger name="Application" minlevel="Debug" writeTo="application_target" /> <logger name="Performance" minlevel="Info" writeTo="performance_target" /> <logger name="DynamicPrivate_Comm_*" minlevel="Error" writeTo="dynamicPrivateFile" final="true" /> <!--Begin - Your custom log levels if the most below rule with minlevel 'Error' does not satisfy--> <!--End - Your custom log levels--> <!--SHOULD set a High level for avoid unintentional verbose logging--> <logger name="DynamicPrivate_*" minlevel="Error" writeTo="dynamicPrivateFile" final="true" /> </rules> </nlog>