log4net

Log4Net日志分类和自动维护

痞子三分冷 提交于 2020-04-09 04:15:11
背景   在程序中,我们调试运行时信息,Log4Net是一个不错的解决方案。不知道是我用的不好,用到最后反而都不想看日志了。原因是因为我n个功能使用的默认的Logger来记录日志,这样以来,所有功能记录的信息都依赖同一个配置,于是所有的信息都在一个文件中,有时候查找起来,极其不方便。   我想,能不能按照功能分类呢?如果通过配置不同的logger,然后功能根据不同的LoggerName加载Ilog实例,是可以做到。但由于这些功能的log配置差异性极小,也许仅仅就是文件名不同。于是想通过代码进行配置。 解决方案   想来这样的需求应该也算正常,但经过查找,发现在log4j中有相关的咨询,但看不懂,只能自己下载log4net的源码,看看它的运行原理。   如果我们需要通过配置不同的ILog,流程是这样的,首先要创建一个ILoggerRepository,通过它来进行日志等级的配置,和各种Appender,接着通过LogManager在ILoggerRepository获取一个Ilog对象,就可以写日志了。代码如下: public static ILog GetLogger( string repositoryName = "" ) { if ( string .IsNullOrEmpty(repositoryName)) return LogManager.GetLogger( "

log4net+Kafka+ELK日志系统

北城余情 提交于 2020-04-08 13:06:36
日志是每个系统最为头疼的地方,杂乱,还多,没有还不行,想管理好的话,得经得起考验,要解决的问题总结如下: (1)高并发 (2)高吞吐量 (3)支持分布式集群 (4)检索要快 简介: 1.Zoomkeeper Kafka的通道 2. Kafka Kafka主要是解决大量日志的处理的分布式发布订阅消息系统,拥有高吞吐量,相比Redis而言,可能存在数据丢失的情况,速度更快,仅支持topic模式,更适合做日志系统 3.Logstash Logstash是一个写入工具,可以说是一个桥梁,实现将kafka的consumer端和Elasticsearch数据连通有很大作用,另外也可以将文件写入到Elasticsearch中,还可以将历史的日志也转存到Elasticsearch中,还是个多功能的工具,官方最新版本中已经默认支持了对Kafka和Elasticsearch的配置 4.Elasticsearch Elasticsearch是可以分布式集群部署的全文搜索引擎服务器(NoSQL数据存储),既拥有Lucene的全文检索功能,同时还能进行分布式储存,检索速度快,与Hadoop联合作数据分析,稳健性高,可以在一个集群宕机后,使用备用集群,一样可以工作,缺点:需要足够的内存和CPU资源 5.Kibana Kibana主要用于对Elasticsearch数据的展示和分析 方案:

log4net使用

假如想象 提交于 2020-03-31 21:38:38
之前用了很多次了,觉得还是有必要总结一下。 log4net整体设计上,分为几部分 logger:代表打印的输出者,即这一行打印是有谁打出来的 appdender:代表打印的目的地,如打印到文件/数据库/缓存/控制台等等 layout:代表打印的格式,可以对logger输出的内容进行格式化 logger log4net的打印输出者即logger,他是有一个字符串作为名字的。在使用中常见的LogManager.GetLogger("xxx"),就是通过名字获取logger。 同一个名字在整个程序中只有一个实例。 log4net打印输出定义了五个level打印等级,由低到高分别是DEBUG>INFO>WARN>ERROR>FATAL,仅当一个logger定义的打印等级,小于或等于程序中输出的打印等级时,打印才会被打出。 例如,如果一个logger定义为WARN级别,那么用log.Info()输出的内容不会被记录。 logger的命名与c#中的命名空间格式相同,以点间隔,多个层级,如X.Y.Z。 之所以采用点间隔方式,是为了对logger定义一个层次的概念如 名为X.Y.Z的logger的parent是X.Y 名为X.Y.Z的logger的descendant的有X和X.Y,以及root root是一个特殊的层次,所有的logger都有有一个root的先祖。 有了层次关系

Dynamic filename for logging with log4net in parallel programming

房东的猫 提交于 2020-03-24 06:12:35
问题 Here is the scenario: I have some 'messages' (data) that has to be processed in parallel. In these parallel processes, I would like to log some things in a message specific logfile. I've tried many things, but my logs just get messed up. I've written a small test project.. Let's see the code: using System.Collections.Generic; using System.Threading.Tasks; namespace ParallelTest { public class MessageController { public void InitiateProcesses(List<Message> messagesToProces) { MessageProcessor

Quartz.NET 入门,带C#实例

荒凉一梦 提交于 2020-03-22 12:40:35
Quartz.NET 入门,带C#实例 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。 参考 官方学习文档: http://www.quartz-scheduler.net/documentation/index.html 使用实例介绍: http://www.quartz-scheduler.net/documentation/quartz-2.x/quick-start.html 官方的源代码下载: http://sourceforge.net/projects/quartznet/files/quartznet/ 或者到我上传的csdn下载: http://download.csdn.net/detail/jys1216/8878305 下载下来官方的例子,我们来分析一下: 解压后,看到的文档 打开后,看到的项目结构如下: 项目可以直接运行: 运行后,我们可以看到,每隔10秒有输出,那是因为,在配置quart.net的服务文件里,配置了每10秒执行一次

Quartz.NET

若如初见. 提交于 2020-03-22 12:38:51
概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。 Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。 参考 官方学习文档: http://www.quartz-scheduler.net/documentation/index.html 使用实例介绍: http://www.quartz-scheduler.net/documentation/quartz-2.x/quick-start.html 官方的源代码下载: http://sourceforge.net/projects/quartznet/files/quartznet/ 或者到我上传的csdn下载: http://download.csdn.net/detail/jys1216/8878305 下载下来官方的例子,我们来分析一下: 解压后,看到的文档 打开后,看到的项目结构如下: 项目可以直接运行: 运行后,我们可以看到,每隔10秒有输出,那是因为,在配置quart.net的服务文件里,配置了每10秒执行一次 快速搭建一个Quartz 第一步:安装

Quartz.NET总结(三)Quartz 配置

蹲街弑〆低调 提交于 2020-03-22 11:34:58
  本来来源: http://www.cnblogs.com/zhangweizhong/p/4894354.html   前两篇文章,已经介绍了Quartz.NET的使用和Cron表达式表达式的写法,今天说一说Quartz的配置,Quartz相关的配置有三个quartz.config、quartz_jobs.xml、log4net.config。其中quartz.config是基本的配置, quartz_jobs.xml是相关的job 任务配置文件,log4net.config则是日志记录的配置。 1. quartz.config , 是Quartz.NET是基本的配置,主要是配置quartz_jobs.xml 的路径,及其他相关的参数。默认的quartz任务配置文件为quartz_jobs.xml,在quartz服务的根目录下,可以通过quartz.config中quartz.plugin.xml.fileNames = ~/quartz_jobs.xml进行设置。 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 # You can configure your scheduler in either

Quartz.NET配置

纵然是瞬间 提交于 2020-03-22 11:14:49
概述 Quartz.NET 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。 此外,Quartz提供了调度运行环境的持久化机制,可以保存并恢复调度现场,即使系统因故障关闭,任务调度现场数据并不会丢失。此外,Quartz还提供了组件式的侦听器、各种插件、线程池等功能。 参考 官方学习文档: http://www.quartz-scheduler.net/documentation/index.html 使用实例介绍: http://www.oschina.net/p/quartz.net 快速搭建一个Quartz 第一步:引用 添加C5.dll、Common.Logging.dll、Common.Logging.Log4Net.dll、log4net.dll、Quartz.dll引用 C5.dll 一个C#和其他CLI语言的泛型集合类。.Net2.0及以上才可以使用。简介地址:http://www.itu.dk/research/c5/ Common.Logging.dll 通用日志接口 Common.Logging.Log4Net.dll 提供log4net对通用日志接口(Common.Logging)的实现 log4net.dll 小白都知道不解

log4net日志记录类使用方法

浪子不回头ぞ 提交于 2020-03-21 10:29:13
Ø 引用 log4net.dll 文件 Ø 在 web.config 中定义一个 section. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/> type 值为 log4net 内部的对象。 Ø 定义一个 log4net 的节点。声明 log 配置文件。 <log4net configSource="Config\log.config"/> 。 < log4net > <!-- 登录日志 --> < logger name = " loginLogger " > // 日志节点名称 < level value = " INFO " /> < appender - ref ref = " loginAppender " /> </ logger > < appender name = " loginAppender " type = " log4net.Appender.RollingFileAppender " > < param name = " File " value = " e:\log\frep\login- " /> // log文件存储路径 < param name = " AppendToFile " value = " true " /> <

ASP.NET MVC5实现芒果分销后台管理系统(一):系统结构设计,集成AutoMapper,Log4net

倖福魔咒の 提交于 2020-03-21 08:27:38
在构思完系统思维脑图后,小墨回到家中,便摩拳擦掌开始了开发工作。要想迅速完成系统开发,前期系统设计和准备尤其重要,因为小墨做过太多大大小小的业务系统,准备工作也是十分顺利。 系统结构 整个系统工程结构如上,基于传统的三层架构模式(不太懂的快去恶补一下) Web: 基于MVC工程模板搭建,系统模型,视图,控制器 Service: 业务 Repository: 持久化层,集成EntityFramework Tracking:日志组件集成Log4net CommonUtils:公共工具,提供加密解密/序列化/Excel处理,提供Castle Ioc管理 话不多说,直接上干货 集成Log4net 虽说李老板的芒果业务系统是如此的简单,可一向有着强迫症的小墨仍然有板有眼的规划系统的各个架构功能,做事尽善尽美是小墨的一贯作风。日志能省吗,当然不能!以下集成Log4net.   Nuget下载   这里直接右键解决方案Nuget中搜索Log4net,安装最新版5.2.7 日志配置文件   <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net