ElasticSearch实战——.Net Core中的应用

dll引用:

  NLog.Targets.ElasticSearch,版本:4.0.0-beta26

  Nlog,版本:4.5.0-rc04

  Microsoft.Extensions.Configuration,版本:2.0.0

 

appsettings.json(属性=》复制到输出目录:始终复制),ElasticSearch的url配置

1
2
3
{
  "ElasticSearchServerAddress": "http://*.*.*.*:9201/"
}

  

NLog.config(属性=》复制到输出目录:始终复制)

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
<?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"
     >
  <!--ElasticSearch保存日志,必须添加此配置-->
  <extensions>
    <add assembly="NLog.Targets.ElasticSearch"/>
  </extensions>
   
  <targets async="true">
    <!--本地目录存储日志文件-->
    <target xsi:type="File" name="File"  fileName="${environment:variable=NLOGDIR}/FinancialBill-Inbound${date:format=yyyy-MM-dd}.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}"   />
    <!--控制台,输出日志信息-->
    <target xsi:type="ColoredConsole"  name="ColoredConsole" layout="[${date:format=yyyy-MM-dd HH\:mm\:ss}][${level}] ${message} ${exception:format=toString}"/>
    <!--ElasticSearch保存日志信息-->
    <target name="ElasticSearch" xsi:type="ElasticSearch" ConnectionStringName="ElasticSearchServerAddress"  index="dvm-report-financialbill-inbound-${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="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}" />
    </target>   
  </targets>
   
  <rules>
    <logger name="*"     minlevel="Trace" writeTo="File" />
    <logger name="*"     minlevel="Trace" writeTo="ColoredConsole" />
    <logger name="*"     minlevel="Trace" writeTo="ElasticSearch" />
  </rules>
 
</nlog>

${environment:variable=NLOGDIR}:环境变量NLOGDIR的值

${appsetting:ElasticSearch}:appsetting.config中的ElasticSearch的值  

  

 

posted @   PanPan003  阅读(1593)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
点击右上角即可分享
微信分享提示