<?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"
      autoReload="true"
      throwConfigExceptions="true"
      internalLogLevel="Debug"
      internalLogToTrace="true">

  <extensions>
        <add assembly="Exceptionless.NLog" />
     
  </extensions>

  <targets>

    <!--<target xsi:type="file" name="logdashboardTraceLog" fileName="${basedir}/logs/${shortdate}.log"
          layout="${longdate}||${level}||${logger}||${message}||${exception:format=ToString:innerFormat=ToString:maxInnerExceptionLevel=10:separator=\r\n} || ${aspnet-traceidentifier} ||end" />-->

    <target xsi:type="file" name="logdashboardFile" fileName="${basedir}\logs\${shortdate}.log"
           layout="${longdate}||${level}||${logger}||${message}||${exception:format=ToString:innerFormat=ToString:maxInnerExceptionLevel=10:separator=\r\n}||end" />

    <target xsi:type="File" name="logfile" fileName="${basedir}\logs\${shortdate}\${level}\${callsite:className=true:methodName=true:skipFrames=1}.log"
                layout="${longdate} [${level:uppercase=true}] ${callsite:className=true:methodName=true:skipFrames=1} ${message} ${exception} @${callsite:fileName=true:includeSourcePath=true}"
              maxArchiveFiles="10"
              archiveAboveSize="10240"
              archiveEvery="Day" />
    <target xsi:type="File" name="sqllogfile" fileName="${basedir}/logs/${shortdate}/${level}.log"
              layout="${longdate} [${level:uppercase=true}] ${callsite:className=true:methodName=true:skipFrames=1} ${stacktrace} ${message} ${exception} @${callsite:fileName=true:includeSourcePath=true}"
            maxArchiveFiles="10"
            archiveAboveSize="10240000"
            archiveEvery="Day" />

    <target xsi:type="ColoredConsole" name="console"
             layout="${longdate} [${level:uppercase=true}] ${callsite:className=true:methodName=true:skipFrames=1} ${message} ${exception} @${callsite:fileName=true:includeSourcePath=true}" />

    <target xsi:type="Null" name="blackhole" />

      <target xsi:type="Exceptionless" name="exceptionless">
            <field name="host" layout="${machinename}" />
            <field name="identity" layout="${identity}" />
          <!--  <field name="windows-identity" layout="${windows-identity:userName=True:domain=False}" />-->
            <field name="process" layout="${processname}" />
         
    </target>
  </targets>

  <rules>

    <!--<logger name="*" minlevel="Debug" writeTo="logdashboardTraceLog" />-->

    <logger name="*" minlevel="ERROR" writeTo="logdashboardFile" />

    <!-- 除非调试需要,把 .NET Core 程序集的 Debug 输出都屏蔽 Trace -》Debug-》 Information -》Warning-》 Error-》 Critical-->
    <logger name="Microsoft.*" minLevel="Trace" writeTo="blackhole" final="true" />
    <!-- 除非调试需要,把系统的 Debug 输出都屏蔽 -->
    <logger name="System.*" minLevel="Trace" writeTo="blackhole" final="true" />

    <logger name="*" minlevel="Info" writeTo="logfile,console" />
    <logger name="*" minlevel="Debug" maxlevel="Debug" writeTo="sqllogfile" />
      <logger name="*" minlevel="ERROR" writeTo="exceptionless" />
  </rules>
</nlog>