<?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"
      keepVariablesOnReload="false"
      throwExceptions="true"
      throwConfigExceptions="true"
      internalLogLevel="Trace"
      internalLogFile="${basedir}\logs\internal-nlog.txt"
>
  <!--引入Nlog扩展包-->
  <extensions>
    <add assembly="NLog.Web.AspNetCore"/>
  </extensions>

  <!--自定义变量-->
  <variable name="myvariable" value="test" />
  
  <!--设置目标-->
  <targets>
    <!--默认彩色控制台-->
    <target xsi:type="ColoredConsole" 
            name="ColoredConsoleLog"
            encoding="utf-8"
            layout="${longdate}|${level:uppercase=true}|${logger}|${message}"
            />
    <!--调试窗口-->
    <target name="debugLog" xsi:type="Debugger" layout="${logger}::${message}"/>
    
    <!--写入通用日志文件-->
    <target xsi:type="File"
            name="allfile"
            fileName="${basedir}\logs\nlog-all-${shortdate}.log"
            layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}">
    </target>
    <target xsi:type="Database"
          name="MySQLTarget"
          dbProvider="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"
          connectionString="server=127.0.0.1;port=3306;user=root;password=yt-461400;database=nlog;Sslmode=None;Character Set=utf8;"
          keepConnection="false"
          commandType="Text"
          commandText="insert into applog (zl_timestamp, zl_user, zl_level, zl_type, zl_message, zl_exception, zl_project) values (@timestamp,@user,@level,@type,@message,@exception,@project);"
        >
      <parameter name="@timestamp" layout="${longdate}"/>
      <parameter name="@user" layout="${event-context:item=user}"/>
      <parameter name="@level" layout="${level}"/>
      <parameter name="@type" layout="${event-context:item=type}"/>
      <parameter name="@message" layout="${message}"/>
      <parameter name="@exception" layout="${exception:tostring}"/>
      <parameter name="@project" layout="${event-context:item=project}"/>
    </target>

  </targets>

  <!--设置规则-->
  <rules>
    <logger ruleName="*" minlevel="Warn" writeTo="ColoredConsoleLog,debugLog,allfile" />
  </rules>
</nlog>