奇忠诚 发表于 2017-12-14 06:59:44

ASP.NET Core使用NLog记录日志到Microsoft Sql Server

<?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"
  
       internalLogLevel="Warn"
  
       internalLogFile="logfiles/internal-nlog.txt">
  

  
   <!-- define various log targets -->
  
   <targets>
  
   <!-- write logs to file -->
  
   <target xsi:type="File" name="allfile" fileName="${var:configDir}\nlog-all.log"
  
             layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" />
  

  

  
   <target xsi:type="File" name="ownFile-web" fileName="${var:configDir}\nlog-own.log"
  
             layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" />
  

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

  
   <target name="database" xsi:type="Database">
  

  
       <connectionString>${var:connectionString}</connectionString>
  

  

  
       <commandText>
  
         insert into dbo.Log (
  
         Application, Logged, Level, Message,
  
         Logger, Callsite, Exception
  
         ) values (
  
         @Application, @Logged, @Level, @Message,
  
         @Logger, @Callsite, @Exception
  
         );
  
       </commandText>
  

  
       <parameter name="@application" layout="AspNetCoreNlog" />
  
       <parameter name="@logged" layout="${date}" />
  
       <parameter name="@level" layout="${level}" />
  
       <parameter name="@message" layout="${message}" />
  

  
       <parameter name="@logger" layout="${logger}" />
  
       <parameter name="@callSite" layout="${callsite}" />
  
       <parameter name="@exception" layout="${exception:tostring}" />
  
   </target>
  
   </targets>
  

  
   <rules>
  
   <!--All logs, including from Microsoft-->
  
   <logger name="*" minlevel="Trace" writeTo="allfile" />
  
   
  
   <!--Skip Microsoft logs and so log only own logs-->
  
   <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
  
   <logger name="*" minlevel="Trace" writeTo="database" />
  
   <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
  
   </rules>
  
</nlog>
页: [1]
查看完整版本: ASP.NET Core使用NLog记录日志到Microsoft Sql Server