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的值
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?