<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">
  <targets>
    <target name="consoleTarget" xsi:type="ColoredConsole" layout="${date} ${logger} - ${message} ${exception:ToString}" />
    <target name="udpTarget" xsi:type="Chainsaw" address="udp://127.0.0.1:20480"
            includeCallSite="true" includeSourceInfo="true" includeNLogData="true" includeNDC="true" includeMDC="true">
      <parameter name="exception" layout="${exception:format=ToString}" xsi:type="NLogViewerParameterInfo" />
      <parameter name="processname" layout="${processname}" xsi:type="NLogViewerParameterInfo" />
      <parameter name="stacktrace" layout="${stacktrace:topFrames=99}" xsi:type="NLogViewerParameterInfo" />
      <parameter name="ThreadName" layout="${threadname}" xsi:type="NLogViewerParameterInfo" />
    </target>

    <target name="file" xsi:type="File" keepFileOpen="true" openFileCacheTimeout="1"
        layout="${longdate} [${level}] ${logger}: ${message} ${exception:ToString}"
        fileName="${basedir}/App_Data/logs/${shortdate}.txt" />
    <target name ="xmlFile" xsi:type="File"  keepFileOpen="true" openFileCacheTimeout="1"
                fileName="${basedir}/App_Data/logs/${shortdate}.xml"
                layout="${log4jxmlevent:includeSourceInfo=true:includeCallSite=true:includeMDC=true:appInfo=true:includeNDC=true:includeNLogData=true}"/>
  </targets>

  <rules>

    <logger name="IIS*" minlevel="Trace"  writeTo="consoleTarget"/>
    <logger name="NzbDrone.Web.MvcApplication" minlevel="Trace"  writeTo="consoleTarget"/>
    <logger name="NzbDrone.Core.CentralDispatch" minlevel="Trace"  writeTo="consoleTarget"/>
    <logger name="Application" minlevel="Trace"  writeTo="consoleTarget"/>
    <logger name="*" minlevel="Trace"  writeTo="udpTarget"/>
    <logger name="*" minlevel="Off"  writeTo="xmlFile">
      <filters>
        <when condition="logger == 'NzbDrone.SubSonic'" action="Ignore" />
      </filters>
    </logger>
    <logger name="*" minlevel="Trace"  writeTo="file">
      <filters>
        <when condition="logger == 'NzbDrone.SubSonic'" action="Ignore" />
      </filters>
    </logger>
  </rules>
</nlog>