服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-10-27 6f3b05c06125b457d0c78e259f3befe4910881cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?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 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}}`"/>
    <!--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}}`"/>
    <!--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}}`"/>
    <!--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}}`"/>
      <!--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}}`"/>
    <!--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" />-->
 
    <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" />
 
    <!--Skip Microsoft logs and so log only own logs-->
    <logger name="Microsoft.*" minlevel="Trace" writeTo="default" final="true" />
  </rules>
</nlog>