demo地址:https://github.com/PuzzledAlien/log4net_demo/tree/master/DotNetCoreConsole_V3

Windows 10 安装部署 ElasticSearch

请参考上一篇文章 Windows 10 安装 ElasticSearch

log4net写日志到ElasticSearch

GitHub可参考的项目有

elastic.log4net和log4net.ElasticSearch 暂时未支持 .Net Core

log4net.ElasticSearch作者承诺很快支持 .Net Core

log4stash号称支持 .Net Core,但是在 .Net Core项目中引用之后提示

warning NU1701: 已使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETCoreApp,Version=v2.2”还原包“log4stash 2.2.1”。此包可能与项目不完全兼容。

可不可以用呢?答案是可以,可以正常的将日志写入到ElasticSearch中。暂时将log4stash列为备选。

log4net.Appender.ElasticSearch 来源于 log4stash,对其进行了修改和裁剪。配置文件需要修改,但是作者在文档中copy了log4stash的配置,未针对自己的项目变动修改而修改配置。

log4stash的简单配置

    <appender name="ElasticSearchAppender" type="log4stash.ElasticSearchAppender, log4stash">
<Servers>
<Server>
<Address>127.0.0.1</Address>
<Port>9200</Port>
</Server>
</Servers>
<IndexName>CozyTripHotelJob_log</IndexName>
<IndexType>LogEvent</IndexType>
<Bulksize>2000</Bulksize>
<BulkIdleTimeout>5000</BulkIdleTimeout>
<IndexAsync>True</IndexAsync>
</appender>

而log4net.Appender.ElasticSearch的配置如下所示应变动为

    <appender name="ElasticSearchAppender" type="log4net.Appender.ElasticSearch.ElasticSearchAppender, log4net.Appender.ElasticSearch">
<Servers>
<Server>
<Address>127.0.0.1</Address>
<Port>9200</Port>
</Server>
</Servers>
<IndexName>log</IndexName>
<IndexType>LogEvent</IndexType>
<Bulksize>2000</Bulksize>
<BulkIdleTimeout>5000</BulkIdleTimeout>
<IndexAsync>True</IndexAsync>
</appender>

另外还有一个问题是log4net.Appender.ElasticSearch默认在IndexName后面加了后缀,例如以我上述配置<IndexName>log</IndexName> 我的期望是索引名称为log,实际生成的索引是log-2019.01.08。因此log4net.Appender.ElasticSearch也作为了备选。

性能测试比对(前提:同时写本地log,打印console以及写ElasticSearch)

log4stash 每秒插入1100条左右

log4net.Appender.ElasticSearch 每秒插入1200条左右

如果不写本地log文件,log4stash 和log4net.Appender.ElasticSearch 每秒都在2500左右

尝试

尝试1:修改log4stash完成支持 .Net Standard

尝试2:修改log4net.Appender.ElasticSearch 关于IndexName的默认配置

尝试1的demo地址:https://github.com/PuzzledAlien/log4stash

尝试2的demo地址:https://github.com/PuzzledAlien/log4net.Appender.ElasticSearch

.Net Core 实践 - 使用log4net记录日志(3)— log4net向ElasticSearch写日志的更多相关文章

  1. log4net 发布到生产环境不写日志的解决方法--使用 NLog日志

    1.升级到log4net的最新版 PM下执行 Install-Package log4net 还是无法解决的,使用下面的方法 2.使用Nlog替换之,详见https://github.com/NLog ...

  2. [转]log4net 发布到生产环境不写日志的解决方法--使用 NLog日志

    本文转自:http://www.cnblogs.com/weiweictgu/p/5848805.html 1.升级到log4net的最新版 PM下执行 Install-Package log4net ...

  3. 使用Log4net记录日志(非常重要)

    使用Log4net记录日志   首先说说为什么要进行日志记录.在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以使用日志 ...

  4. .Net Core 实践 - 使用log4net记录日志(1)

    demo地址:https://github.com/PuzzledAlien/log4net_demo 准备 log4net 最新版本是2.0.8 VS2017 .Net Core 2.2 测试电脑配 ...

  5. .Net Core 实践 - 使用log4net记录日志(2)

    实现目标:将log4net的相关操作封装成一个 .Net Standard类库 demo地址:https://github.com/PuzzledAlien/log4net_demo/tree/mas ...

  6. ASP.NET Core使用log4net记录日志

    .NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net ...

  7. .NET Core使用log4Net记录日志

    1.引入Nuget包 log4net 2.添加log4Net配置文件 <?xml version="1.0" encoding="utf-8" ?> ...

  8. ASP.NET Log4net 记录日志

    1.安装方式一(官网下载) 2.安装方式二(NuGet安装log4net) 3.使用步骤 4.自定义属性:UserIP UserName ActionsClick Message 概述:Log4net ...

  9. 使用log4net记录日志到数据库(含有自定义属性)

    记录日志是管理系统中对用户行为的一种监控与审核,asp.net中记录日志的方式有很多种,这里我只介绍一下最近用到的log4net,关于他的具体介绍网上有很多,我讲一下他的用法. 第一步:在配置文件中的 ...

随机推荐

  1. 让数字变化炫酷起来,数字滚动Text组件[Unity]

    让数字滚动起来 上周我的策划又提了样需求,当玩家评分发生变动时,屏幕出现人物评分浮层UI,播放评分数字滚动动画.这类数字滚动需求非常常见,我就按一般思路,将startvalue与endvalue每隔一 ...

  2. 2.Git配置和关联GitHub

    1.配置本地信息, 右键Git Bush Here git config –global user.name '账号名' ##回车 git config –global user.email 邮箱 # ...

  3. vue项目开发时怎么解决跨域

    vue项目中,前端与后台进行数据请求或者提交的时候,如果后台没有设置跨域,前端本地调试代码的时候就会报“No 'Access-Control-Allow-Origin' header is prese ...

  4. SpringAop注解实现日志的存储

    一.介绍 1.AOP的作用 在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加.AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封 ...

  5. python—迭代器、生成器

    1.迭代器(iteration) 迭代器协议:提供next()方法,该方法要么返回迭代的下一项,要么异常.(只能往后走) 可迭代对象:实现迭代器协议的对象. **字符串.列表.元祖.字典.集合.文件都 ...

  6. AI-2.梯度下降算法

    上节定义了神经网络中几个重要的常见的函数,最后提到的损失函数的目的就是求得一组合适的w.b 先看下损失函数的曲线图,如下 即目的就是求得最低点对应的一组w.b,而本节要讲的梯度下降算法就是会一步一步地 ...

  7. svn 安装及更新web库

    安装: apt-get update         //更新apt-get库 apt-get install subversion        安装SVN mkdir /home/svn     ...

  8. .NET Core跨平台的奥秘[中篇]:复用之殇

    在<.NET Core跨平台的奥秘[上篇]:历史的枷锁>中我们谈到:由于.NET是建立在CLI这一标准的规范之上,所以它天生就具有了"跨平台"的基因.在微软发布了第一个 ...

  9. JQuery实现 图片上传

    用到的文件,我都已经打包好了,自行下载: https://files.cnblogs.com/files/lguow/lib.rar 核心代码如下: <input type="hidd ...

  10. [Swift]LeetCode995. K 连续位的最小翻转次数 | Minimum Number of K Consecutive Bit Flips

    In an array A containing only 0s and 1s, a K-bit flip consists of choosing a (contiguous) subarray o ...