日志组件Log2Net的介绍和使用(附开源地址)

  Log2Net是一个用于收集日志到数据库或文件的组件,支持.NET和.NetCore平台。 此组件自动收集系统的运行日志(服务器运行情况、在线人数等)、异常日志。程序员还可以添加自定义日志。 该组件支持.NET平台和.NETCore平台,支持将日志写入到文本文件、SQL Server、Oracle、MySQL,可以方便地扩展到其他数据库。

  针对这个组件的数据,相应地有日志查询网站,它查询日志数据库的数据(Log2Net组件存储的日志数据),显示各服务器/网站的实时数据图表显示,提供操作轨迹数据和监控数据的查询功能,并对异常情况进行告警。

一、为什么要开发这个组件

  也有有园友要问了,现在的日志组件太多了啊,什么log4net,ELK,Kafka,Grafana,Graylog、facebook scribe,apache chukwa,cloudera flume等。都是国际大厂或知名组织的开源组件,你又何必重复造轮子呢?

  确实,这些开源系统不需要代码开发,且功能强大,支持各种类型(例如文本文本、数据库、缓存等)的日志的接入,有图表等多种展现方式,能实现海量数据的快速查询,能存储为多种类型(例如文本文本、数据库、缓存、HDFS等),天生的适合分布式部署。缺点是部署运维较为复杂,需要较多的插件支持(java、nodejs、ErLang等);这些大都采用开源的java、scala等语言开发,优先应用于linux平台,我们不能灵活自由地定制自己的需求,相对我们.net平台来说,资料较少开发难度较大,相对我们的需求来说较为庞大。log4net组件虽然可以灵活地应用到.net系统中,但依然不满足我们的需求。

  在我们的系统中,我们想知道用户进行了什么操作,想知道网站的运行情况(例如在线人数、异常情况等),想监控服务器的运行情况(如内存情况、磁盘使用情况等),目前没有一个合适的方案来较好地满足满足我们的需求。因此,我们开发了一个日志组件和一个集中式日志查询系统。这个日志组件可以自动地收集系统的运行情况(如服务器内存、磁盘使用、在线人数、日常日志等),可以记录用户操作情况等,可以通过日志查询界面显示各网站/服务器的实时数据图表显示,提供操作轨迹数据和监控数据的查询功能等。

二、Log2net组件使用效果展示

  使用Log2net组件后,可以将日志数据以友好的形式展示:显示各服务器/网站的实时数据图表显示,提供操作轨迹数据和监控数据的查询功能,并对异常情况进行告警。

1 操作日志查询

  操作日志查询主要用于按照系统名称、服务器名称、时段、日志类型、关键词等条件查询操作轨迹类数据,主要以列表数据的形式展示日志数据。在列表的左侧,可以显示服务器的概况,如cpu使用率,内存使用率等。在列表的上侧,显示日志的分类汇总情况。如下图所示:

2 系统监控 

  系统监控主要监控各服务器和应用网站的情况,主要以图形化的方面实时显示网站/服务器的运行情况。

  (1)、概况实时显示:显示服务器在当前时刻的cpu/内存使用率等情况;

  (2)、服务器状态监控:显示服务器在某时段内的cpu/内存使用率等情况;

  (3)、系统流量监控:显示系统在某时段内的在线人数、某页面的访问人数等;

  (4)、异常告警:在系统新加入监控或失去监控时音乐告警。

  如下图所示:

  上图中,每台服务器显示一条曲线图。因为本人测试的服务器只有一台,所以只有一个曲线图。随着服务器个数的增加,自动添加曲线图的个数。

三、Log2net组件的使用方法

  看了上面炫酷的效果,是不是有点心动了呢,那么怎么将其应用到自己的网站中呢?别急,跟我一步一步来。

  PS. 本组件支持.NET4.5~.NetCore2.1,应该能满足绝大多数筒子们的需求了吧,后续会支持.NetCore的更高版本,与.NetCore同步更新。

1 引用组件

  在VS开发工具的nuget中,搜索 Log2Net 组件安装即可。

  搜索搜索 Log2Net ,log4net出现在第一位,好吧,我承认,名字是参考他们的,也浏览了他们的代码~~

  但是,小主,第二个才是我们要安装的,不要搞错了哦~~

你也可以通过Nuge官网来下载和安装: https://www.nuget.org/packages/Log2Net/  。但建议使用VS工具的nuget来安装。

2 组件的注册

  要使用该组件,需要进行组件的注册:在应用程序初始化的地方,调用  LogApi.RegisterLogInitMsg(SysCategory sys, object Application, bool bWriteStartLog = true, bool bLogMonitor = true);

  各参数解释如下:

  SysCategory sys:业务系统的名称,在SysCategory枚举中定义好了。

  object Application:程序的Application对象,用于网站在线人数和历史访客统计,仅在.net平台中使用。netCore中该参数为null;

  bool bWriteStartLog:是否写网站启动的日志,默认为true;

  bool bLogMonitor:是否写系统定时监控日志,默认为true。

  一般地,在调用该方法时,只需要设置前两个参数,后两个参数可以不设置。

  在.net平台中,是 Global.asax 中的Application_Start()事件中注册;

  在.netCore平台中,是Startup.cs中 Configure中,appLifetime.ApplicationStarted.Register方法中注册。

  该方法必须被调用,且必须在应用程序初始化事件中调用,否则调用其他写日志的方法时会出错。

原文地址:https://www.cnblogs.com/yuchen1030/p/10992259.html

时间: 2024-10-14 07:54:47

日志组件Log2Net的介绍和使用(附开源地址)的相关文章

日志组件logback的介绍及配置使用方法

一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-access.logback-core是其它两个模块的基础模块.logback-classic是log4j的一个 改良版本.此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging.logback-access访问模块与Serv

日志组件logback的介绍及配置使用方法(一)

一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-access.logback-core是其它两个模块的基础模块.logback-classic是log4j的一个 改良版本.此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging.logback-access访问模块与Serv

Log4Net日志组件使用

                                               Log4Net日志组件使用 概要:LogNet是一套开源的程序日志记录系统,经过配置后可以自动抓取程序中的错误.异常信息,并写入磁盘,也可以在异常发生时执行其他指定的操作 新建一个类库:Logger,封装一个LogHelper.cs using System; using System.Collections.Generic; using System.Linq; using System.Text;

【转】java日志组件介绍(common-logging,log4j,slf4j,logback )

common-logging common-logging是apache提供的一个通用的日志接口.用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库.当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱.所以使用common-logging,通常都是配合着log4j来使用.使用它的好处就是,代码依赖是common-loggin

日志组件介绍(common-logging,log4j,slf4j,logback)

common-logging common-logging是apache提供的一个通用的日志接口.用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库.当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱.所以使用common-logging,通常都是配合着log4j来使用.使用它的好处就是,代码依赖是common-loggin

java日志组件介绍(common-logging,log4j,slf4j,logback )

common-logging common-logging是 apache提供的一个通用的日志接口.用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库.当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱.所以使用common-logging,通常都是配合着log4j来使用.使用它的好处就是,代码依赖是 common-logg

java日志组件介绍(common-logging,log4j,slf4j,logback)

common-logging common-logging是apache提供的一个通用的日志接口.用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库.当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱.所以使用common-logging,通常都是配合着log4j来使用.使用它的好处就是,代码依赖是common-loggin

转:java日志组件介绍(common-logging,log4j,slf4j,logback )

原网址:http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html common-logging common-logging是apache提供的一个通用的日志接口.用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库.当然,common-logging内部有一个Simple logger的简单实现

ASP.NET使用log4Net日志组件教程(按日期与按日志大小切割)

对于一个大型网站与系统来说,日志是必备的工具,通过日志你可以非常清楚程序的运行情况,及时得到反馈来解决问题,下面介绍ASP.NET版本的log4Net日志组件是个非常强大的工具,最新版本for .net2.0 1.2.10.0 本人搞了一天,终于知道搞清楚怎样使用了,简单记录一下. 以下介绍的方法是log4net使用单独的配置文件的. 开始行动: 第一步:在项目引用log4net.dll文件 第二步: 在Web.config文件中加入一句代码,位置如下: <configuration>