NLog 配置 示例

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
<?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"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
     >
  <extensions>
    <add assembly="NLog.Targets.ElasticSearch"/>
  </extensions>
 
  <!-- optional, add some variabeles
  https://github.com/nlog/NLog/wiki/Configuration-file#variables
  -->
  <variable name="myvar" value="myvalue"/>
 
  <targets async="true">
    <target xsi:type="File" name="File"  fileName="${environment:variable=NLOGDIR}/****.WebApi.log"
            archiveAboveSize="20000000" archiveNumbering="Rolling"  encoding="UTF-8" enableFileDelete="true"  maxArchiveFiles="5"
            layout="[${date:format=yyyy-MM-dd HH\:mm\:ss}][${level}] ${logger} ${message} ${exception:format=toString} ${aspnet-request:cookie=String:serverVariable=String:queryString=String:item=String:form=String:header=String}"   />
    <target name="PerformanceLogES" xsi:type="ElasticSearch" uri="${configsetting:name=ElasticSearchServerAddress}"  index="perflog-****-webapi-${date:format=yyyy.MM.dd}" documentType="logevent" includeAllProperties="true"
             layout="[${date:format=yyyy-MM-dd HH\:mm\:ss}][${level}] ${logger} ${message} ${exception:format=toString}">
          <field name="MachineName" layout="${machinename}" />
          <!--<field name="AllEventProperties" layout="${all-event-properties:format=[key]=[value]:separator=;:includeCallerInformation=true}" />-->
          <field name="Time" layout="${longdate}" />
          <field name="level" layout="${level:uppercase=true}" />
          <field name="logger" layout=" ${logger}" />
          <field name="message" layout=" ${message}" />
          <field name="exception" layout=" ${exception:format=toString}" />
          <field name="processid" layout=" ${processid}" />
          <field name="threadname" layout=" ${threadname}" />
          <field name="stacktrace" layout=" ${stacktrace}" />
          <field name="Properties" layout="${machinename} ${longdate} ${level:uppercase=true} ${logger} ${message} ${exception}|${processid}|${stacktrace}|${threadname}" />
          <field name="WWNamespace" layout="${environment:WWNamespace}" />
    </target>
  </targets>
  <rules>
    <!-- add your logging rules here -->
    <!--<logger name="*"     minlevel="Trace" writeTo="EventLog" />-->
    <logger name="PerformanceLog" minlevel="Trace" writeTo="PerformanceLogES" final="true" />
    <logger name="*"     minlevel="Trace" writeTo="File" />
    <logger name="*"    minlevel="Trace" writeTo="ElasticSearch" />
    <!--
    <logger name="*"     minlevel="Trace" writeTo="ColoredConsole" />
    <logger name="*" minlevel="Trace" writeTo="f" />
    -->
  </rules>
 
</nlog>

  

posted @   PanPan003  阅读(614)  评论(1编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示