1、NuGet 项目引用
NLog.Web.AspNetCore
NLog.Targets.ElasticSearch
2、nlog.config配置文件:
<?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"> <!-- enable asp.net core layout renderers --> <extensions> <add assembly="NLog.Web.AspNetCore"/> <add assembly="NLog.Targets.ElasticSearch"/> </extensions> <!-- the targets to write to --> <targets async="true"> <target xsi:type="BufferingWrapper" name="ElasticSearch" flushTimeout="5000"> <target xsi:type="ElasticSearch" uri="http://ip地址1:端口,http://ip地址2:端口,http://ip地址3:端口" index="mycore-web-${shortdate}" includeAllProperties="true"> <field name="machinename" layout="${machinename}" /> <field name="date" layout="${longdate}" /> <field name="logger" layout="${logger}" /> <field name="stacktrace" layout="${stacktrace}" /> <field name="threadid" layout="${threadid}" /> <field name="url" layout="${aspnet-request-url:IncludeQueryString=true}" /> <field name="controller" layout="${aspnet-mvc-controller}" /> <field name="action" layout="${aspnet-mvc-action}" /> </target> </target> </targets> <!-- rules to map from logger name to target --> <rules> <!-- BlackHole without writeTo --> <logger name="Microsoft.*" maxLevel="Info" final="true" /> <logger name="*" minlevel="Info" writeTo="ElasticSearch" /> </rules> </nlog>