|
|
<?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"
|
|
|
throwExceptions="false"
|
|
|
internalLogLevel="off" internalLogFile="${basedir}/Logs/nlog-internal.log">
|
|
|
|
|
|
<variable name="MicrosoftLevel" value="${level:lowercase=true:truncate=4:when=level==LogLevel.Info or level==LogLevel.Warn}${when:when=level==LogLevel.Error:inner=fail}${when:when=level==LogLevel.Fatal:inner=crit}${when:when=level==LogLevel.Debug:inner=dbug}${when:when=level==LogLevel.Trace:inner=trce}" />
|
|
|
<variable name="MicrosoftLayout" value="${MicrosoftLevel}: ${logger}[${event-properties:EventId_Id:whenEmpty=0}]${newline} ${message}${onexception:inner=${newline}${exception:format=tostring}}" />
|
|
|
|
|
|
<targets>
|
|
|
<!--archiveAboveSize="10240000"表示单个文件最大10M-->
|
|
|
<!--maxArchiveFiles="30"表示同一文件夹下最多留存30个日志文件,超出将删除-->
|
|
|
|
|
|
<target name="console" xsi:type="ColoredConsole" async="true" layout="${MicrosoftLayout}" useDefaultRowHighlightingRules="false" >
|
|
|
<highlight-row condition="contains(message, 'Now listening')" foregroundColor="Yellow"/>
|
|
|
<highlight-word foregroundColor="DarkGreen" regex="^info" />
|
|
|
<highlight-word foregroundColor="Yellow" regex="^warn" />
|
|
|
<highlight-word foregroundColor="Black" backgroundColor="Red" regex="^fail" />
|
|
|
<highlight-word foregroundColor="White" backgroundColor="Red" regex="^crit" />
|
|
|
</target>
|
|
|
|
|
|
<target name="all" xsi:type="File" maxArchiveFiles="30" archiveAboveSize="10240000"
|
|
|
fileName="${basedir}/Logs/${shortdate}/all.log"
|
|
|
layout="${longdate} | ${level} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
|
|
|
|
|
|
<target name="error" xsi:type="File" maxArchiveFiles="30" archiveAboveSize="10240000"
|
|
|
fileName="${basedir}/Logs/${shortdate}/error.log"
|
|
|
layout="${longdate} | ${level} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
|
|
|
|
|
|
<target name="big" xsi:type="AsyncWrapper">
|
|
|
<target xsi:type="File" maxArchiveFiles="30" archiveAboveSize="10240000"
|
|
|
fileName="${basedir}/Logs/${shortdate}/big.log"
|
|
|
layout="${longdate} | ${level} | ${message}" />
|
|
|
</target>
|
|
|
|
|
|
<target name="info" xsi:type="File" maxArchiveFiles="30" archiveAboveSize="10240000"
|
|
|
fileName="${basedir}/Logs/${shortdate}/info.log"
|
|
|
layout="${longdate} | ${level} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" />
|
|
|
|
|
|
<target name="database" xsi:type="Database"
|
|
|
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=EFinance;Persist Security Info=True;User ID=sa;Password=123456;">
|
|
|
<commandText>
|
|
|
insert into syslogs
|
|
|
(Application,Levels,Operatingtime,Operatingaddress,Userid,Logger,Callsite,Requesturl,Referrerurl,Action,Message,Exception)
|
|
|
values
|
|
|
(@application,@levels,@operatingtime,@operatingaddress,@userid,@logger,@callSite,@requesturl,@referrerurl,@action,@message,@exception);
|
|
|
</commandText>
|
|
|
<parameter name="@application" layout="WebApi" />
|
|
|
<parameter name="@levels" layout="${level}" />
|
|
|
<parameter name="@operatingTime" layout="${date}" />
|
|
|
<parameter name="@operatingaddress" layout="${aspnet-Request-IP}" />
|
|
|
<parameter name="@userid" layout="1" />
|
|
|
<parameter name="@logger" layout="${logger}" />
|
|
|
<parameter name="@callSite" layout="${callsite}" />
|
|
|
<parameter name="@requesturl" layout="${aspnet-request-url}" />
|
|
|
<parameter name="@referrerurl" layout="${aspnet-request}" />
|
|
|
<parameter name="@action" layout="${aspnet-mvc-action}" />
|
|
|
<parameter name="@message" layout="${message}" />
|
|
|
<parameter name="@exception" layout="${exception:tostring}" />
|
|
|
</target>
|
|
|
</targets>
|
|
|
|
|
|
<rules>
|
|
|
<!-- 说明:
|
|
|
日志等级:MIN TRACE,DEBUG,INFO,WARN,ERROR,FATAL MAX
|
|
|
final:设置了final后,当此路由被匹配到时,不会再匹配此路由下面的路由。未匹配到此路由时才会继续匹配下一个路由
|
|
|
name="*":表示全部匹配 -->
|
|
|
|
|
|
<!-- 捕获全部日志,适用于调试阶段跟踪日志-->
|
|
|
<!--<logger name="*" minlevel="Trace" writeTo="all" />-->
|
|
|
|
|
|
<!-- 捕获日志到控制台 -->
|
|
|
<logger name="*" minlevel="INFO" writeTo="console" />
|
|
|
|
|
|
<!-- 只捕获异常 -->
|
|
|
<logger name="*" minlevel="ERROR" writeTo="error" />
|
|
|
|
|
|
<!-- 不记录微软的日志(异常的日志除外,因为会在上面的两个规则中记录) -->
|
|
|
<logger name="Microsoft.*" minlevel="Trace" final="true" />
|
|
|
|
|
|
<!-- 保存大数据量的日志,采用异步的方式 -->
|
|
|
<logger name="BigDataLogger" writeTo="big" final="true" />
|
|
|
|
|
|
<!-- 普通日志,记录到文件 -->
|
|
|
<logger name="*" minlevel="INFO" writeTo="info" />
|
|
|
|
|
|
<!-- 普通日志,记录到库 -->
|
|
|
<!--<logger name="*" minlevel="INFO" writeTo="database" />-->
|
|
|
</rules>
|
|
|
</nlog> |