﻿<?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"
      autoReload="true">
	<!--
		This sections allows logging of specific services to be
		toggled on or off. If all services are turned off, then
		no logging will be performed.

		This configuration will create separate files for service
		logging and client application logging. This config file
		will need to be placed in both the Applications folder and
		Server folder.
	-->
	<extensions>
		<add assembly="NLog.Targets.Http" />
	</extensions>
				
	<!--Services logging-->
	<variable name="Toggle_Alarm_Service" value="Off"/>
	<variable name="Toggle_Application_Service" value="On"/>
	<variable name="Toggle_Archive_Service" value="Off"/>
	<variable name="Toggle_Enterprise_Data_Transfer_Service" value="Off"/>
	<variable name="Toggle_Enterprise_Warehouse_Service" value="Off"/>
	<variable name="Toggle_Integration_Service" value="Off"/>
	<variable name="Toggle_Logistics_Service" value="Off"/>
	<variable name="Toggle_Real_Time_Analysis_Service" value="Off"/>
	<variable name="Toggle_Report_Scheduler_Service" value="on"/>
	<variable name="Toggle_xLink_Service" value="Off"/>
	<variable name="Toggle_xTend_API_Service" value="Off"/> 
	<variable name="Toggle_Anywhere_Service" value="off"/>
	
	<!--Client Application logging-->
	<variable name="Toggle_FactoryLogix_Office" value="Off"/>
	<variable name="Toggle_FactoryLogix_Operations" value="On"/>
	<variable name="Toggle_FactoryLogix_Logistics" value="Off"/>
	<variable name="Toggle_FactoryLogix_Analytics" value="On"/>
	<variable name="Toggle_LegacyService" value="Off"/>
	<variable name="Toggle_FactoryLogix_ServerManagement"  value="Off"/>
	
	<!--Logging directory variables-->
	<variable name="logDirectory" value="C:/AegisLogs"/>
	<variable name="archiveDirectory" value="${logDirectory}/Archive"/>
	
	<!--Nothing below this line should need to be changed-->
	
<!-- ===================================================================================================================================================== -->	
<!-- ===================================================================================================================================================== -->	
	<targets async="true">
	
		<!-- Services Application Log File -->
		<target name="ServicesAppLog"
		        xsi:type="File"
		        fileName="${logDirectory}/NLog-ServerAppLogs.log"
		        keepFileOpen="true"
		        layout="${longdate} | ${processname} | ${processid} | ${threadid} | ${logger:upperCase=true} | ${level:upperCase=true} | ${message}"
		        concurrentWrites="true"
		        createDir="true"
		        archiveAboveSize="10000000"
		        archiveFileName="${archiveDirectory}/${shortDate}.NLogServer-AppLogsArchive.log"
		        maxArchiveDays="2"
		        archiveNumbering="Sequence"/>
				
		<!--Services SQL Log File -->
		<target name="ServicesSqlLog"
		        xsi:type="File"
		        fileName="${logDirectory}/NLog-ServerSqlLogs.log"
		        keepFileOpen="true"
		        layout="${longdate} | ${processname} | ${processid} | ${threadid} | ${logger:upperCase=true} | ${level:upperCase=true} | ${message}"
		        concurrentWrites="true"
		        createDir="true"
		        archiveAboveSize="10000000"
		        archiveFileName="${archiveDirectory}/${shortDate}.NLogServer-SQLLogsArchive.log"
		        maxArchiveDays="2"
		        archiveNumbering="Sequence"/>
				
		<!--Services SVC Log File -->
		<target name="ServicesSvcLog"
		        xsi:type="File"
		        fileName="${logDirectory}/NLogServer-SvcLogs.log"
		        keepFileOpen="true"
		        layout="${longdate} | ${processname} | ${processid} | ${threadid} | ${logger:upperCase=true} | ${level:upperCase=true} | ${message}"
		        concurrentWrites="true"
		        createDir="true"
		        archiveAboveSize="10000000"
		        archiveFileName="${archiveDirectory}/${shortDate}.NLogServer-SvcLogsArchive.log"
		        maxArchiveFiles="30"
		        archiveNumbering="Sequence"/>
				
		<!--Services SOAP Log File -->
		<target name="ServicesSOAPLog"
		        xsi:type="File"
		        fileName="${logDirectory}/NLog-ServerSOAPLogs.log"
		        keepFileOpen="true"
		        layout="${longdate} | ${processname} | ${processid} | ${threadid} | ${logger:upperCase=true} | ${level:upperCase=true} | ${message}"
		        concurrentWrites="true"
		        createDir="true"
		        archiveAboveSize="10000000"
		        archiveFileName="${archiveDirectory}/${shortDate}.NLogServer-SOAPLogsArchive.log"
		        maxArchiveFiles="30"
		        archiveNumbering="Sequence"/>
				
		<!-- Client Application Log File -->
		<target name="ClientAppLog"
		        xsi:type="File"
		        fileName="${logDirectory}/NLog-ClientAppLogs.log"
		        keepFileOpen="true"
		        layout="${longdate} | ${processname} | ${processid} | ${threadid} | ${logger:upperCase=true} | ${level:upperCase=true} | ${message}"
		        concurrentWrites="true"
		        createDir="true"
		        archiveAboveSize="10000000"
		        archiveFileName="${archiveDirectory}/${shortDate}.NLogClient-AppLogsArchive.log"
		        maxArchiveFiles="30"
		        archiveNumbering="Sequence"/>
				
		<!-- Client SQL Log File -->
		<target name="ClientSqlLog"
		        xsi:type="File"
		        fileName="${logDirectory}/NLog-ClientSqlLogs.log"
		        keepFileOpen="true"
		        layout="${longdate} | ${processname} | ${processid} | ${threadid} | ${logger:upperCase=true} | ${level:upperCase=true} | ${message}"
		        concurrentWrites="true"
		        createDir="true"
		        archiveAboveSize="10000000"
		        archiveFileName="${archiveDirectory}/${shortDate}.NLogClient-SQLLogsArchive.log"
		        maxArchiveFiles="30"
		        archiveNumbering="Sequence"/>
				
		<!-- Client SVC Log File -->
		<target name="ClientSvcLog"
		        xsi:type="File"
		        fileName="${logDirectory}/NLog-ClientSvcLogs.log"
		        keepFileOpen="true"
		        layout="${longdate} | ${processname} | ${processid} | ${threadid} | ${logger:upperCase=true} | ${level:upperCase=true} | ${message}"
		        concurrentWrites="true"
		        createDir="true"
		        archiveAboveSize="10000000"
		        archiveFileName="${archiveDirectory}/${shortDate}.NLogClientService-SvcLogsArchive.log"
		        maxArchiveFiles="30"
		        archiveNumbering="Sequence"/>
				
		<!-- JSON Logger -->
		<target name="JSONSOAP"
            xsi:type="Http"
            URL="https://logs.aiscorp.com/Logger/WriteLog"
            Method="POST"
            BatchSize="50"
			MaxQueueSize="1000"
            DefaultConnectionLimit="2" >
			<!-- optional additional HTTP Headers -->
			<!--<header name="key" value="value"/>-->
			<header name="AegisKey" value="T9x2L7qPMF6zHDyvwUG0eBnaK1Ct34XmZQYgRp5JAcshV8uW" />
			<!-- additional headers -->
			<!-- layout element -->
			<layout type="JsonLayout">
				<attribute name="UtcTime" layout="${date:universalTime=true:format=yyyy-MM-dd HH\:mm\:ss.fff}" />
				<!-- CHANGE THE <<layout>> FIELD OF Source TO THE CUSTOMER's NAME BEFORE DEPLOYING.  AVOID SPACES.  -->
				<attribute name="Source" layout="Customer_1" />
				<attribute name="Host" layout="${machinename}" />
				<attribute name="ProcessName" layout="${processname}" />
				<attribute name="Level" layout="${level:upperCase=true}" />
				<attribute name="Logger" layout="${logger}" />
				<attribute name="Thread" layout="${threadid}" />
				<attribute name="Message" layout="${message}" />
			</layout>
		</target>
	</targets>

<!-- ===================================================================================================================================================== -->	
<!-- ===================================================================================================================================================== -->	
	
	<rules>
		<!-- The name of the loggers should not be changed. NLog is looking for these names from FactoryLogix to log properly. If changed, NLog will not work.-->
		
		<!-- JSON Rules -->
		<logger name="SoapLog" 
				minlevel="Info" 
				writeTo="JSONSOAP">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Application_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ApplicationService')"
					  action="Log"/>
			</filters>
		</logger>

		<!-- Service Loggers separated by FactoryLogix Services. -->
		
		<!-- Application Service -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Application_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ApplicationService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="ServicesSqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Application_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ApplicationService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="ServicesSvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Application_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ApplicationService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SoapLog"
		        level="Info"
		        writeTo="ServicesSOAPLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Application_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ApplicationService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Alarm Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Alarm_Service}', 'On') and      equals('${processname}', 'FactoryLogix_AlarmService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Alarm_Service}', 'On') and      equals('${processname}', 'FactoryLogix_AlarmService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Alarm_Service}', 'On') and      equals('${processname}', 'FactoryLogix_AlarmService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Archive Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Archive_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ArchiveService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Archive_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ArchiveService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Archive_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ArchiveService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Enterprise Data Transfer Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Enterprise_Data_Transfer_Service}', 'On') and      equals('${processname}', 'FactoryLogix_EnterpriseDataTransferService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Enterprise_Data_Transfer_Service}', 'On') and      equals('${processname}', 'FactoryLogix_EnterpriseDataTransferService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Enterprise_Data_Transfer_Service}', 'On') and      equals('${processname}', 'FactoryLogix_EnterpriseDataTransferService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Enterprise Warehouse Service Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Enterprise_Warehouse_Service}', 'On') and      equals('${processname}', 'FactoryLogix_EnterpriseWarehouseService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Enterprise_Warehouse_Service}', 'On') and      equals('${processname}', 'FactoryLogix_EnterpriseWarehouseService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Enterprise_Warehouse_Service}', 'On') and      equals('${processname}', 'FactoryLogix_EnterpriseWarehouseService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Integration Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Integration_Service}', 'On') and      equals('${processname}', 'FactoryLogix_IntegrationService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Integration_Service}', 'On') and      equals('${processname}', 'FactoryLogix_IntegrationService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Integration_Service}', 'On') and      equals('${processname}', 'FactoryLogix_IntegrationService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Logistics Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Logistics_Service}', 'On') and      equals('${processname}', 'FactoryLogix_LogisticsService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Logistics_Service}', 'On') and      equals('${processname}', 'FactoryLogix_LogisticsService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Logistics_Service}', 'On') and      equals('${processname}', 'FactoryLogix_LogisticsService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Real Time Analytics Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Real_Time_Analysis_Service}', 'On') and      equals('${processname}', 'FactoryLogix_RealTimeAnalysisService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Real_Time_Analysis_Service}', 'On') and      equals('${processname}', 'FactoryLogix_RealTimeAnalysisService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Real_Time_Analysis_Service}', 'On') and      equals('${processname}', 'FactoryLogix_RealTimeAnalysisService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Report Scheduler Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Report_Scheduler_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ReportSchedulerService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Report_Scheduler_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ReportSchedulerService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Report_Scheduler_Service}', 'On') and      equals('${processname}', 'FactoryLogix_ReportSchedulerService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- xLink Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_xLink_Service}', 'On') and      equals('${processname}', 'FactoryLogix_xLinkService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_xLink_Service}', 'On') and      equals('${processname}', 'FactoryLogix_xLinkService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_xLink_Service}', 'On') and      equals('${processname}', 'FactoryLogix_xLinkService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- xTend API Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_xTend_API_Service}', 'On') and      equals('${processname}', 'FactoryLogix_xTendAPIService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_xTend_API_Service}', 'On') and      equals('${processname}', 'FactoryLogix_xTendAPIService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_xTend_API_Service}', 'On') and      equals('${processname}', 'FactoryLogix_xTendAPIService')"
				      action="Log"/>
			</filters>
		</logger>
		<!-- FLx Anywhere Service loggers -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ServicesAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Anywhere_Service}', 'On') and      equals('${processname}', 'w3wp')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="SqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Anywhere_Service}', 'On') and      equals('${processname}', 'w3wp')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="SvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_Anywhere_Service}', 'On') and      equals('${processname}', 'w3wp')"
				      action="Log"/>
			</filters>
		</logger>
		
<!-- ===================================================================================================================================================== -->
<!-- ===================================================================================================================================================== -->			
		
		<!-- Client Applications Logging -->
		<!-- FactoryLogix Office -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ClientAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Office}', 'On') and      equals('${processname}', 'FactoryLogix_NPI')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="ClientSqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Office}', 'On') and      equals('${processname}', 'FactoryLogix_NPI')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="ClientSvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Office}', 'On') and      equals('${processname}', 'FactoryLogix_NPI')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- FactoryLogix Operations -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ClientAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Operations}', 'On') and      equals('${processname}', 'FactoryLogix_Production')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="ClientSqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Operations}', 'On') and      equals('${processname}', 'FactoryLogix_Production')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="ClientSvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Operations}', 'On') and      equals('${processname}', 'FactoryLogix_Production')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- FactoryLogix Logistics -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ClientAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Logistics}', 'On') and      equals('${processname}', 'FactoryLogix_Logistics')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="ClientSqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Logistics}', 'On') and      equals('${processname}', 'FactoryLogix_Logistics')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="ClientSvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Logistics}', 'On') and      equals('${processname}', 'FactoryLogix_Logistics')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- FactoryLogix Analytics -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ClientAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Analytics}', 'On') and      equals('${processname}', 'FactoryLogix_Analytics')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="ClientSqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Analytics}', 'On') and      equals('${processname}', 'FactoryLogix_Analytics')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="ClientSvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_Analytics}', 'On') and      equals('${processname}', 'FactoryLogix_Analytics')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!-- Legacy Application -->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ClientAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_LegacyService}', 'On') and      equals('${processname}', 'FactoryLogix_LegacyService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="ClientSqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_LegacyService}', 'On') and      equals('${processname}', 'FactoryLogix_LegacyService')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SvcLog"
		        minlevel="Debug"
		        writeTo="ClientSvcLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_LegacyService}', 'On') and      equals('${processname}', 'FactoryLogix_LegacyService')"
				      action="Log"/>
			</filters>
		</logger>
		
		<!--Server Management-->
		<logger name="AppLog"
		        levels="Info, Warn, Debug, Error"
		        writeTo="ClientAppLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_ServerManagement}', 'On') and      equals('${processname}', 'FactoryLogix_ServerManagement')"
				      action="Log"/>
			</filters>
		</logger>
		<logger name="SqlLog"
		        levels="Debug, Info"
		        writeTo="ClientSqlLog">
			<filters defaultAction="Ignore">
				<when condition="equals('${Toggle_FactoryLogix_ServerManagement}', 'On') and      equals('${processname}', 'FactoryLogix_ServerManagement')"
				      action="Log"/>
			</filters>
		</logger>
	</rules>
</nlog>