<?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="info">
|
|
<!-- enable asp.net core layout renderers
|
<extensions>
|
<add assembly="NLog.Web.AspNetCore"/>
|
</extensions> -->
|
|
<!-- the variables to write to -->
|
<variable name="connectionString" value="server=172.18.8.57;database=wmslog;uid=root;pwd=Share@123;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;"/>
|
|
<!-- the targets to write to -->
|
<targets async="true">
|
<!--启用buffer-->
|
<!--<default-wrapper xsi:type="BufferingWrapper" bufferSize="100"/>-->
|
|
<target xsi:type="Null" name="blackhole" />
|
<!--write logs to file-->
|
<!--Default Log : 每天按每天存档,每个存档不大于10M-->
|
<target name="default" xsi:type="File" archiveAboveSize="10485760" archiveNumbering="Sequence" archiveEvery="Day" KeepFileOpen="false"
|
fileName="Logs/${shortdate}.log" layout="`${longdate}[${level}] ${callsite} at ${callsite-linenumber} :: ${message}. ${onexception:${exception:format=tostring}${newline}${stacktrace}}`"/>
|
<target name="default_db" xsi:type="Database" connectionString="${var:connectionString}" dbProvider="MySqlConnector.MySqlConnection, MySqlConnector">
|
<commandText>
|
INSERT INTO `default` (id,createtime,sequence,logtime,level,hostname,hostip,callsite,linenumber,message,exception,stacktrace,apiversion,apidir)
|
VALUES (uuid(),CURRENT_TIMESTAMP(6),@sequence,@logtime,@level,@hostname,@hostip,@callsite,@linenumber,@message,@exception,@stacktrace,@apiversion,@apidir)
|
</commandText>
|
<parameter name = "@sequence" layout = "${sequenceid}" />
|
<parameter name = "@logtime" layout = "${date}" />
|
<parameter name = "@level" layout = "${level}"/>
|
<parameter name = "@hostname" layout = "${hostname}"/>
|
<parameter name = "@hostip" layout = "${local-ip}"/>
|
<parameter name = "@callsite" layout = "${callsite}" />
|
<parameter name = "@linenumber" layout = "${callsite-linenumber}" />
|
<parameter name = "@message" layout = "${message}" />
|
<parameter name = "@exception" layout = "${exception:format=tostring}" />
|
<parameter name = "@stacktrace" layout = "${onexception:${stacktrace}}" />
|
<parameter name = "@apiversion" layout = "${assembly-version}" />
|
<parameter name = "@apidir" layout = "${basedir}" />
|
</target>
|
<!--No Callsite Log : 每天按每天存档,每个存档不大于10M-->
|
<target name="noCaller" xsi:type="File" archiveAboveSize="10485760" archiveNumbering="Sequence" archiveEvery="Day" KeepFileOpen="false"
|
fileName="Logs/${shortdate}.log" layout="`${longdate}[${level}] ${message}. ${onexception:${exception:format=tostring}${newline}${stacktrace}}`"/>
|
<!--Http Context Log : 每天按每天存档,每个存档不大于10M-->
|
<target name="http" xsi:type="File" archiveAboveSize="10485760" archiveNumbering="Sequence" archiveEvery="Day" KeepFileOpen="false"
|
fileName="Logs/${shortdate}.http.log" layout="`${longdate}[${level}] HttpLog :: ${message}. ${onexception:${exception:format=tostring}${newline}${stacktrace}}`"/>
|
<target name="http_db" xsi:type="Database" connectionString="${var:connectionString}" dbProvider="MySqlConnector.MySqlConnection, MySqlConnector">
|
<commandText>
|
INSERT INTO `http` (id,createtime,sequence,logtime,level,hostname,hostip,callsite,linenumber,message,exception,stacktrace,apiversion,apidir)
|
VALUES (uuid(),CURRENT_TIMESTAMP(6),@sequence,@logtime,@level,@hostname,@hostip,@callsite,@linenumber,@message,@exception,@stacktrace,@apiversion,@apidir)
|
</commandText>
|
<parameter name = "@sequence" layout = "${sequenceid}" />
|
<parameter name = "@logtime" layout = "${date}" />
|
<parameter name = "@level" layout = "${level}"/>
|
<parameter name = "@hostname" layout = "${hostname}"/>
|
<parameter name = "@hostip" layout = "${local-ip}"/>
|
<parameter name = "@callsite" layout = "${callsite}" />
|
<parameter name = "@linenumber" layout = "${callsite-linenumber}" />
|
<parameter name = "@message" layout = "${message}" />
|
<parameter name = "@exception" layout = "${exception:format=tostring}" />
|
<parameter name = "@stacktrace" layout = "${onexception:${stacktrace}}" />
|
<parameter name = "@apiversion" layout = "${assembly-version}" />
|
<parameter name = "@apidir" layout = "${basedir}" />
|
</target>
|
<!--Scheduler Log : 每天按每天存档,每个存档不大于10M-->
|
<target name="scheduler" xsi:type="File" archiveAboveSize="10485760" archiveNumbering="Sequence" archiveEvery="Day" KeepFileOpen="false"
|
fileName="Logs/${shortdate}.scheduler.log" layout="`${longdate}[${level}] SchedulerLog :: ${newline}${message}. ${onexception:${exception:format=tostring}${newline}${stacktrace}}`"/>
|
<target name="scheduler_db" xsi:type="Database" connectionString="${var:connectionString}" dbProvider="MySqlConnector.MySqlConnection, MySqlConnector">
|
<commandText>
|
INSERT INTO `scheduler` (id,createtime,sequence,logtime,level,hostname,hostip,callsite,linenumber,message,exception,stacktrace,apiversion,apidir)
|
VALUES (uuid(),CURRENT_TIMESTAMP(6),@sequence,@logtime,@level,@hostname,@hostip,@callsite,@linenumber,@message,@exception,@stacktrace,@apiversion,@apidir)
|
</commandText>
|
<parameter name = "@sequence" layout = "${sequenceid}" />
|
<parameter name = "@logtime" layout = "${date}" />
|
<parameter name = "@level" layout = "${level}"/>
|
<parameter name = "@hostname" layout = "${hostname}"/>
|
<parameter name = "@hostip" layout = "${local-ip}"/>
|
<parameter name = "@callsite" layout = "${callsite}" />
|
<parameter name = "@linenumber" layout = "${callsite-linenumber}" />
|
<parameter name = "@message" layout = "${message}" />
|
<parameter name = "@exception" layout = "${exception:format=tostring}" />
|
<parameter name = "@stacktrace" layout = "${onexception:${stacktrace}}" />
|
<parameter name = "@apiversion" layout = "${assembly-version}" />
|
<parameter name = "@apidir" layout = "${basedir}" />
|
</target>
|
<!--Interface Log : 每天按每天存档,每个存档不大于10M-->
|
<target name="Interface" xsi:type="File" archiveAboveSize="10485760" archiveNumbering="Sequence" archiveEvery="Day" KeepFileOpen="false"
|
fileName="Logs/${shortdate}.Interface.log" layout="`${longdate}[${level}] InterfaceLog :: ${newline}${message}. ${onexception:${exception:format=tostring}${newline}${stacktrace}}`"/>
|
<target name="Interface_db" xsi:type="Database" connectionString="${var:connectionString}" dbProvider="MySqlConnector.MySqlConnection, MySqlConnector">
|
<commandText>
|
INSERT INTO `Interface` (id,createtime,sequence,logtime,level,hostname,hostip,callsite,linenumber,message,exception,stacktrace,apiversion,apidir)
|
VALUES (uuid(),CURRENT_TIMESTAMP(6),@sequence,@logtime,@level,@hostname,@hostip,@callsite,@linenumber,@message,@exception,@stacktrace,@apiversion,@apidir)
|
</commandText>
|
<parameter name = "@sequence" layout = "${sequenceid}" />
|
<parameter name = "@logtime" layout = "${date}" />
|
<parameter name = "@level" layout = "${level}"/>
|
<parameter name = "@hostname" layout = "${hostname}"/>
|
<parameter name = "@hostip" layout = "${local-ip}"/>
|
<parameter name = "@callsite" layout = "${callsite}" />
|
<parameter name = "@linenumber" layout = "${callsite-linenumber}" />
|
<parameter name = "@message" layout = "${message}" />
|
<parameter name = "@exception" layout = "${exception:format=tostring}" />
|
<parameter name = "@stacktrace" layout = "${onexception:${stacktrace}}" />
|
<parameter name = "@apiversion" layout = "${assembly-version}" />
|
<parameter name = "@apidir" layout = "${basedir}" />
|
</target>
|
<!--Shelf Log : 每天按每天存档,每个存档不大于10M-->
|
<target name="shelf" xsi:type="File" archiveAboveSize="10485760" archiveNumbering="Sequence" archiveEvery="Day" KeepFileOpen="false"
|
fileName="Logs/ShelfLog/${shortdate}.shelf.log" layout="`${longdate}[${level}] ShelfHttpLog :: ${newline}${message}. ${onexception:${exception:format=tostring}${newline}${stacktrace}}`"/>
|
<target name="shelf_db" xsi:type="Database" connectionString="${var:connectionString}" dbProvider="MySqlConnector.MySqlConnection, MySqlConnector">
|
<commandText>
|
INSERT INTO `shelf` (id,createtime,sequence,logtime,level,hostname,hostip,callsite,linenumber,message,exception,stacktrace,apiversion,apidir)
|
VALUES (uuid(),CURRENT_TIMESTAMP(6),@sequence,@logtime,@level,@hostname,@hostip,@callsite,@linenumber,@message,@exception,@stacktrace,@apiversion,@apidir)
|
</commandText>
|
<parameter name = "@sequence" layout = "${sequenceid}" />
|
<parameter name = "@logtime" layout = "${date}" />
|
<parameter name = "@level" layout = "${level}"/>
|
<parameter name = "@hostname" layout = "${hostname}"/>
|
<parameter name = "@hostip" layout = "${local-ip}"/>
|
<parameter name = "@callsite" layout = "${callsite}" />
|
<parameter name = "@linenumber" layout = "${callsite-linenumber}" />
|
<parameter name = "@message" layout = "${message}" />
|
<parameter name = "@exception" layout = "${exception:format=tostring}" />
|
<parameter name = "@stacktrace" layout = "${onexception:${stacktrace}}" />
|
<parameter name = "@apiversion" layout = "${assembly-version}" />
|
<parameter name = "@apidir" layout = "${basedir}" />
|
</target>
|
<!--Console Log : 输出到控制台-->
|
<target name="console" xsi:type="ColoredConsole" useDefaultRowHighlightingRules="true" layout="`${longdate}[${level}] ${callsite} at ${callsite-linenumber} :: ${message}. ${onexception:${exception:format=tostring}${newline}${stacktrace}}`">
|
<highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red"/>
|
<highlight-row condition="level == LogLevel.Error" foregroundColor="Magenta"/>
|
<highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow"/>
|
<highlight-row condition="level == LogLevel.Info" foregroundColor="Green"/>
|
<highlight-row condition="level == LogLevel.Debug" foregroundColor="Gray"/>
|
<highlight-row condition="level == LogLevel.Trace" foregroundColor="Cyan"/>
|
<highlight-word text="Exception" ignoreCase="true" foregroundColor="White" backgroundColor="Magenta"/>
|
</target>
|
</targets>
|
|
<!-- rules to map from logger name to target -->
|
<rules>
|
<!--All logs, including from Microsoft-->
|
<!--<logger name="*" minlevel="Trace" writeTo="allfile" />-->
|
<!--Local Log-->
|
<logger name="default" minlevel="Trace" writeTo="default" />
|
<logger name="noCaller" minlevel="Trace" writeTo="noCaller" />
|
<logger name="console" minlevel="Trace" writeTo="default" />
|
<logger name="console" minlevel="Trace" writeTo="console" />
|
<logger name="http" minlevel="Trace" writeTo="http" />
|
<logger name="scheduler" minlevel="Trace" writeTo="scheduler" />
|
<logger name="Interface" minlevel="Trace" writeTo="Interface" />
|
<logger name="shelf" minlevel="Trace" writeTo="shelf" />
|
<!--DB Log-->
|
<!--<logger name="default" minlevel="Trace" writeTo="default_db" />
|
<logger name="noCaller" minlevel="Trace" writeTo="default_db" />
|
<logger name="console" minlevel="Trace" writeTo="default_db" />
|
<logger name="http" minlevel="Trace" writeTo="http_db" />
|
<logger name="scheduler" minlevel="Trace" writeTo="scheduler_db" />
|
<logger name="Interface" minlevel="Trace" writeTo="Interface_db" />
|
<logger name="shelf" minlevel="Trace" writeTo="shelf_db" />-->
|
|
<!--Skip Microsoft logs and so log only own logs-->
|
<logger name="Microsoft.*" minlevel="Trace" writeTo="default" final="true" />
|
</rules>
|
</nlog>
|