<?xml version="1.0" encoding="UTF-8"?>
<!--

recordProperty
recordTable
recordUpdateIgnored {0,1}

if using information updates it is best to add a filter to the appender to focus on the relevant updates:
EXAMPLE:
=================================================================
<filter type="SmartX.General.PropertyRangeFilter, libSmartXCommonLIB">
      <key value="recordTable" />
      <stringsToMatch value="Folders,ProcessGroups,Accounts,Sessions,Events,Computers" />
      <acceptOnMatch value="false" />
      <filter type="log4net.Filter.PropertyFilter">
        <key value="recordUpdateIgnored" />
        <stringToMatch value="1" />
        <acceptOnMatch value="false" />
      </filter>
    </filter>
    <filter type="log4net.Filter.DenyAllFilter"/>
==================================================================

Available loggers:
====================
ApplicationLoadInformation
Performance.ActivityQueue
Performance.DBAdapter
Performance.DirectoryServices
Performance.InformationEvents
Performance.Threading.DelayedTaskExecuter
Instructions
SmartX.API.apiSid2Name2Sid
SmartX.Configuration.ConfigurationAdapter
SmartX.Configuration.ConfigurationManager
SmartX.ControlUp.Login.Engine
SmartX.ControlUp.Login.Form
SmartX.ControlUp.Login.LoginObject
SmartX.ControlUp.UI.StressSettings
SmartX.ControlUp.ADM
SmartX.ControlUp.PerformaceCounters (Agent only)
SmartX.ControlUp.QFarm (Agent only)
SmartX.ControlUp.Net (Agent only)
SmartX.ControlUp.Engine (Agent only)
SmartX.API.WF (Agent only)
SmartX.DirectoryServices.Cache
SmartX.DirectoryServices.Environment
SmartX.DirectoryServices.Object
Security.WebServices
SmartX.ControlUp.Incidents.Data
SmartX.ControlUp.Incidents.Cache
SmartX.ControlUp.Incidents.Controls
ControlUp.PowerShell.Server.ConfigurationService
-->
<log4net>
  
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value= "%date [%thread] %level - %message%newline%exception" />
    </layout>
  </appender>

  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
		<file value="cuMonitor.log"/>
		<appendToFile value="true"/>
		<rollingStyle value="Size"/>
		<maxSizeRollBackups value="5"/>
		<maximumFileSize value="50MB"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
		<staticLogFileName value="true"/>
    
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="'%date',%logger,'[%thread]','%level','%message%'%newline"/>
		</layout>
    
	</appender>
  <appender name="queries" type="log4net.Appender.RollingFileAppender">
    <file value="queries.log"/>
    <appendToFile value="true"/>
    <rollingStyle value="Size"/>
    <maxSizeRollBackups value="5"/>
    <maximumFileSize value="50MB"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <staticLogFileName value="true"/>

    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="'%date',%logger,'[%thread]','%level','%message%'%newline"/>
    </layout>

  </appender>
  <appender name="MonitorSharedConfigAppender" type="log4net.Appender.RollingFileAppender">
    <file value="MonitorSharedConfig.log"/>
    <appendToFile value="true"/>
    <rollingStyle value="Size"/>
    <maxSizeRollBackups value="5"/>
    <maximumFileSize value="50MB"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <staticLogFileName value="true"/>

    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="'%date',%logger,'[%thread]','%level','%message%'%newline"/>
    </layout>

  </appender>
  
  <appender name="splunkAppender" type="log4net.Appender.UdpAppender">
    <layout type="log4net.Layout.PatternLayout" value="%utcdate{yyyy-MM-dd HH:mm:ss.fff},level=%-5p,%m%n"/>
    <remoteAddress value="splunk-qa.controlup.com" />
    <remotePort value="10514"/>
  </appender>

  <appender name="ScheduledTriggersAppender" type="log4net.Appender.RollingFileAppender">
    <file value="ScheduledTriggers.log"/>
    <appendToFile value="true"/>
    <rollingStyle value="Size"/>
    <maxSizeRollBackups value="5"/>
    <maximumFileSize value="50MB"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <staticLogFileName value="true"/>

    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="'%date',%logger,'[%thread]','%level','%message%'%newline"/>
    </layout>

  </appender>
  <appender name="ActionsAppender" type="log4net.Appender.RollingFileAppender">
    <file value="Actions.log"/>
    <appendToFile value="true"/>
    <rollingStyle value="Size"/>
    <maxSizeRollBackups value="5"/>
    <maximumFileSize value="50MB"/>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <staticLogFileName value="true"/>

    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="'%date',%logger,'[%thread]','%level','%message%'%newline"/>
    </layout>

  </appender>
  <root>
		<level value="DEBUG"/>
    <appender-ref ref="RollingFileAppender"/>
	</root>
  <logger name="SmartX.ControlUp.Client.ClusterMonitor.RemoteDataAccess.WebSocketQueryProvider">
    <level value="DEBUG"/>
    <appender-ref ref="queries"/>
  </logger>
  <logger name="SmartX.ControlUp.Client.ClusterMonitor.RemoteDataAccess.WebSocketAPIManager">
    <level value="DEBUG"/>
    <appender-ref ref="queries"/>
  </logger>
  <logger name="Performance">
    <level value="DEBUG"/>
  </logger>
  <logger name="Monitor.Stats" additivity="False">
    <level value="INFO"/>
    <appender-ref ref="splunkAppender"/>
  </logger>

  <logger name="MonitorSharedConfigLogger" additivity="False">
    <level value="DEBUG"/>
    <appender-ref ref="MonitorSharedConfigAppender"/>
  </logger>
  <logger name="ScheduledTriggersLogger" additivity="False">
    <level value="DEBUG"/>
    <appender-ref ref="ScheduledTriggersAppender"/>
  </logger>
  <logger name="ActionsLogger" additivity="False">
    <level value="DEBUG"/>
    <appender-ref ref="ActionsAppender"/>
  </logger>
  <!--<logger name="paConsole.UI">
    <level value="DEBUG"/>
  </logger>-->
  <!--<logger name="SmartX.ControlUp.Incidents">
    <level value="DEBUG"/>
  </logger>
  <logger name="SmartX.ControlUp.Login">
    <level value="DEBUG"/>
  </logger>
  <logger name="ControlUpConsole">
    <level value="DEBUG"/>
  </logger>
  
  <logger name="SmartX.ControlUp.ADM.Factory">
    <level value="VERBOSE"/>
  </logger>
  <logger name="ApplicationLoadInformation">
    <level value="VERBOSE"/>
  </logger>
  <logger name="SmartX.ControlUp.Environment">
    <level value="VERBOSE"/>
  </logger>
  <logger name="SmartX.ControlUp.Login">
    <level value="VERBOSE"/>
  </logger>
  <logger name="Performance.Threading.DelayedTaskExecuter">
    <level value="VERBOSE"/>
  </logger>-->
</log4net>