<?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="true"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">

  <!-- optional, add some variables
  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>
    <target xsi:type="Database"
    name="db"
    dbUserName="sa"
    dbProvider="System.Data.SqlClient"
    useTransactions="true"
    keepConnection="true"
    dbDatabase="Centrala"
    dbPassword="DataLab123"
    dbHost="91.199.61.50"
    commandText="INSERT INTO [dbo].[tPA_SyncApiLog] ([adCreated],[acControllerName],[acActionName],[acRequestJson],[acUserName],[acUserIP],[acMessage],[anLogLevel]) VALUES (GETDATE(), @controllerName, @actionName, @json, @userName, @userIP, @message, @logLevel);">

      <parameter name="@controllerName" layout="${event-properties:item=controller}" />
      <parameter name="@actionName" layout="${event-properties:item=action}" />
      <parameter name="@json" layout="${event-properties:item=json}" />
      <parameter name="@userName" layout="${event-properties:item=username}" />
      <parameter name="@userIP" layout="${event-properties:item=ip}" />
      <parameter name="@message" layout="${message}" />
      <parameter name="@logLevel" layout="${level:Format=Ordinal}" />
    </target>

    <target xsi:type="Debugger" name="debugConsole" layout="${longdate} ${level} ${message} ${event-properties:item=username} ${event-properties:item=controller} ${event-properties:item=action} ${event-properties:item=ip} ${event-properties:item=json}"/>
    <!--
    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}" />
    -->
  </targets>

  <rules>
    <logger name="PantheonApi.SyncApi.Controllers.*" minlevel="Trace" writeTo="db" />
    <logger name="*" minlevel="Trace" writeTo="debugConsole" />
    <!-- add your logging rules here -->

    <!--
    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>
