<?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 async="true">

    <!-- 
    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 xsi:type="ColoredConsole" name="console" layout="[${longdate}] [${uppercase:${level}}] ${message}" />-->
    <target xsi:type="File" name="file" fileName="${basedir}/logs/${shortdate}/map.log"
            layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
    <target xsi:type="ColoredConsole" name="console"
            layout="[${date:format=dd MMM yyyy HH\:mm\:ss.fff}] [${uppercase:${level}}] ${message}" />
    <target xsi:type="ColoredConsole" name="packets"
            layout="${message}">
      <highlight-row
        condition="equals('${logger}', 'FFXIVClassic.Common.BasePacket') and equals('${event-context:item=color}', '6')"
        backgroundColor="DarkYellow" foregroundColor="NoChange" />
      <highlight-row
        condition="equals('${logger}', 'FFXIVClassic.Common.SubPacket') and equals('${event-context:item=color}', '4')"
        backgroundColor="DarkRed" foregroundColor="NoChange" />
      <highlight-row
        condition="equals('${logger}', 'FFXIVClassic.Common.SubPacket') and equals('${event-context:item=color}', '5')"
        backgroundColor="DarkMagenta" foregroundColor="NoChange" />
    </target>
  </targets>

  <rules>
    <!-- add your logging rules here -->
    <logger name='*' minlevel='Trace' writeTo='file' />
    <logger name='FFXIVClassic_Map_Server.Program' minlevel='Trace' writeTo='console' />
    <logger name='FFXIVClassic_Map_Server.lua.*' minlevel='Trace' writeTo='console' />
    <logger name='FFXIVClassic_Map_Server.packets.*' minlevel='Debug' writeTo='packets' />
    <logger name='FFXIVClassic.Common.*' minlevel='Debug' writeTo='packets' />
    <!--
    Write all events with minimal level of Debug (So Debug, Info, Warn, Error and Fatal, but not Trace)  to "f"
    <logger name="*" minlevel="Debug" writeTo="f" />
    -->
  </rules>
</nlog>