分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

.net core使用NLog+Elasticsearch记录日志

发布时间:2023-09-06 01:58责任编辑:傅花花关键词:暂无标签

添加Nuget引用

       需要添加两个Nuget引用:NLog.Web.AspNetCore和NLog.Targets.ElasticSearch

配置

       新增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" ?????internalLogToConsole="true"> ?<extensions> ???<add assembly="NLog.Targets.ElasticSearch"/> ?</extensions> ?<targets> ???<!--ElasticSearch保存日志信息--> ???<target name="ElasticSearch" xsi:type="ElasticSearch" ConnectionStringName="ElasticSearchServerAddress" ?????????????index="userapi-${date:format=yyyy.MM.dd}" documentType="doc" 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="INFO" writeTo="ElasticSearch" /> ?</rules></nlog>

      修改appsettings.json,增加如下节点,注意,经调试源码才发现,这里必须将连接增加到ConnectionStrings节点下,ElasticSearchServerAddress节点名称对应nlog.config中ConnectionStringName的名称。

"ConnectionStrings": { ???"ElasticSearchServerAddress": "http://192.168.2.97:9200,http://192.168.2.101:9200,http://192.168.2.102:9200"}

修改代码

     修改Program.cs文件:

public static void Main(string[] args){ ?????NLogBuilder.ConfigureNLog("nlog.config"); ?????BuildWebHost(args).Run(); }public static IWebHost BuildWebHost(string[] args) => ???????????WebHost.CreateDefaultBuilder(args) ???????????????.UseNLog() ???????????????.UseStartup<Startup>() ???????????????.Build();

  修改Startup.cs文件:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){ ??loggerFactory.AddNLog();}

测试

 ???public class ValuesController : Controller ???{ ???????private ILogger _logger; ???????public ValuesController(ILogger<ValuesController> logger) ???????{ ???????????_logger = logger; ???????} ???????[HttpGet] ???????public IEnumerable<string> Get() ???????{ ???????????_logger.LogInformation("测试一下,不要紧张!"); ???????????return new string[] { "value1", "value2" }; ???????}}

      kibana里查询截图:

.net core使用NLog+Elasticsearch记录日志

原文地址:https://www.cnblogs.com/focus-lei/p/9154867.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved