<?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"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" >


  <!-- optional, add some variabeles
  https://github.com/nlog/NLog/wiki/Configuration-file#variables
  -->
  <variable name="myvar" value="myvalue"/>

  <!-- 
  See https://github.com/nlog/nlog/wiki/Configuration-file 
  for information on customizing logging rules and outputs.
   -->
  <targets>

    <!-- 
    add your targets here 
    See https://github.com/nlog/NLog/wiki/Targets for possible targets.
    See https://github.com/nlog/NLog/wiki/Layout-Renderers for the possible layout renderers.
    -->

    <!--
    Write events to a file with the date in the filename. 
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
            layout="${longdate} ${uppercase:${level}} ${message}" />
    -->
    <target
      name="logfile"
      xsi:type="File"
      fileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/main.log"
      archiveAboveSize="524288"
      maxArchiveFiles="10"
      archiveFileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/main_{#}.log"
      layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}|${level}|${message}  ${exception:format=tostring}" />

    <target
      name="ptz_logfile"
      xsi:type="File"
      fileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/ptz.log"
      archiveAboveSize="524288"
      maxArchiveFiles="10"
      archiveFileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/ptz_{#}.log"
      layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}|${message}  ${exception:format=tostring}" />

    <target
     name="update_logfile"
     xsi:type="File"
     fileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/update.log"
     archiveAboveSize="524288"
     maxArchiveFiles="10"
     archiveFileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/update_{#}.log"
     layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}|${level}|${message}  ${exception:format=tostring}" />

    <target
     name="commlib_logfile"
     xsi:type="File"
     fileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/comm_lib.log"
     archiveAboveSize="524288"
     maxArchiveFiles="10"
     archiveFileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/comm_lib_{#}.log"
     layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}|${level}|${message}  ${exception:format=tostring}" />

    <target
     name="messenger_logfile"
     xsi:type="File"
     fileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/messenger.log"
     archiveAboveSize="524288"
     maxArchiveFiles="10"
     archiveFileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/messenger_{#}.log"
     layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}|${level}|${message}  ${exception:format=tostring}" />

    <target
      name="zoom_logfile"
      xsi:type="File"
      fileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/zoom.log"
      archiveAboveSize="524288"
      maxArchiveFiles="10"
      archiveFileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/zoom_{#}.log"
      layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}|${level}|${message}  ${exception:format=tostring}" />

    <target
      name="pubnub_logfile"
      xsi:type="File"
      fileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/pubnub.log"
      archiveAboveSize="524288"
      maxArchiveFiles="10"
      archiveFileName="${specialfolder:folder=CommonApplicationData}/General Devices/e-Net/Logs/pubnub_{#}.log"
      layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}|${level}|${message}  ${exception:format=tostring}" />

    <target
     name="output"
     xsi:type="Debugger"
     layout="${message} ${exception:format=tostring}" />
    
  </targets>

  <rules>
    
    <!--Do not log eNetComm trace messages (prevents Visual Studio output window from getting polluted with multiple messages-->
    <logger name="eNetCommLib.*" level="Trace" final="true" />
    
    <logger name="*" minlevel="Trace" writeTo="output" />

    <!--<logger name="PtzLog" minlevel="Info" writeTo="ptz_logfile" final="true" />-->
    <logger name="Gd.eNet.Update.Manager" minlevel="Info" writeTo="update_logfile" final="true" />
    <logger name="eNetCommLib.*" minlevel="Info" writeTo="commlib_logfile" final="true" />
    <logger name="Gd.eNet.Messenger.*" minlevel="Info" writeTo="messenger_logfile" final="true" />
    <logger name="Gd.eNet.eBridge.Zoom.*" minlevel="Info" writeTo="zoom_logfile" final="true" />
    <logger name="Gd.eNet.PubNub.*" minlevel="Info" writeTo="pubnub_logfile" final="true" />

    <logger name="*" minlevel="Debug" writeTo="logfile" />
    
  </rules>
</nlog>