You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
4.9 KiB
XML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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>