log4net使用流程
前面大致介绍了一下log4net的概述和结构。既然都清楚了,下面我来介绍一下如何使用log4net.
使用流程
1.这里所说的使用流程就是使用log4net.dll,首先要根据你的平台来找出对应的版本的log4net.dll
2.然后对log4net对进行配置,一些参数的配置,比如我们要输出到什么介质中,输出格式如何……具体的配置方式有下面四种
在这里只对使用步骤进行概括:具体使用方法请参看最后的例子。
1、 在项目中添加对log4net.dll的引用。
2、 程序启动时读取log4net的配置文件。
(1)如果是CS程序,在根目录的Program.cs中的Main方法中添加:log4net.Config.XmlConfigurator.Configure();
(2)如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加:log4net.Config.XmlConfigurator.Configure();
(3)无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句:[assembly: log4net.Config .XmlConfigurator()]
修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web.config文件中,添加内容一样,这里不再列出。或则使用自定义的配置文件。
(4)使用自定义的配置文件。 调用如下方法读取配置文件,注意path必须为绝对路径。
log4net.Config.XmlConfigurator.ConfigureAndWatch(path);
3. 在程序使用。
log4net.ILog log = log4net.LogManager.GetLogger("logger");//获取一个日志记录器
log.Info("record success");//写入一条新log
经过上面三步就ok了,我们就可以使用log4net进行日志记录了。
log4Net配置文件注意事项
1. log4net框架会尝试在应用程序的BaseDirectory指向的目录中查找配置文件,即在 AppDomain.CurrentDomain.BaseDirectory(局数据框架的webconfig相同的路径)的位置上查找。而log4net查找的唯一目标就是在配置文件中的< log4net>标志出的XML内容。
2./configuration/configSection/section 这个项有点特殊,如果你使用的是.net的应用配置文件,那么这个项必须出现,如果你使用的自定义的配置文件,那么这个项可以是不要的,自定义的配置文件只需要<log4net>这个项。
3.Logger是通过类似命名空间的层次结构命名和管理的,每一个应用中的Logger都有一个Root Logger,也就是默认Logger,<root>项就是用于定义Root Logger的。但是,<root>项并不是必须的,因为<root>项只有在配置文件中没有配置任何Logger的时候才起作用,此时,log4net将使用<root>项的配置作为创建一个Logger时的默认配置。所以,在这个例子里,因为上面已经配置了 <logger>,所以<root>并不起作用,放在这里只是为了做一个完整的配置说明。 但是,需要注意的是,<root>并非完全不起作用。如果我们在代码中使用了LogManager.GetLog(...),其中的参数指定了一个不在配置文件中的Logger的@name时,那么log4net将会把<root>作为默认Logger,并依据<root>的配置创建一个Logger。
总结
本文总结的是如何把log4net调用到我们的程序中。但在这里只对使用步骤进行概括,具体使用方法请参看最后的例子。这里提供两个例子:wince平台下使用log4net记录日志和用一个简单的示例说明日志记录组件log4net的使用.其他网上的demo也很多,大家可以参考。
log4net使用流程的更多相关文章
- log4net学习目录
log4net是用来记录日志的,日志是用来帮助我们排除错误和异常的.这是我们编写软件必须要用到的东西,前面总结了一些有关日志和log4net的文章,在这整理个目录东大家参考. C#日志工具汇总 log ...
- 关于log4net日志的配置流程
最近又重新整理一下log4net日志的配置,现在记录一下流程和一些遇到的问题,以备后续使用,具体的配置参数等信息.此文无,见谅! 1. 下载log4net.dll文件(网上很多,随便找一个!) 2. ...
- LOG4NET开源日志dll引用流程,在net3.5中已经实践ok
一,在app.config中配置 <?xml version="1.0"?><configuration> <configSections> & ...
- log4net快速使用流程
以下内容大部分来自这里,对原作者流子表示感谢 1.Nuget安装,当前版本2.0.8 2.创建log4net.config文件,文件内容如下: <?xml version="1.0&q ...
- 【开源】OSharp3.3框架解说系列(7.1):初始化流程概述
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- Log4net在类库中的用法
app.config应当放置在解决方案的根目录下.具体流程如下: 第一步:应该下载log4net.dll并引入到你的项目中,下载见附件 第二步:需要配置相关的配置文件App.config或Web.co ...
- ELK+FileBeat+Log4Net搭建日志系统
ELK+FileBeat+Log4Net搭建日志系统 来源:https://www.zybuluo.com/muyanfeixiang/note/608470 标签(空格分隔): ELK Log4Ne ...
- log4net面面观之工作原理
转自:逗逼的博客:http://itrust.cnblogs.com/archive/2005/01/25/97225.html 要知道Log4net究竟是咋干活的,咱们可以从下面这个脉络简图入手.你 ...
- log4net自定义字段写入SqlServer数据库 ASP.net
首先申明,本示例经过本作者亲自试验通过,可以运行 第一步 编写log4net配置文件 此处为Log.xml,该文件放在与Web.config平级的位置 <?xml version="1 ...
随机推荐
- c 占位符
%d, %i,代表整数,%f-浮点,%s,字符串,%c,char. %p 指针,%fL 长log,%e科学计数,%g 小数或科学计数. C语言中的格式占位符: %a,%A 读入一个浮点值(仅C9 ...
- Mono for Android 显示远程图片
Main.axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
- qt实现-给SQLITE添加自定义函数
需要使用sqlite里的password对某个字段进行加密,由于使用的sqlite是由QT封装好的QSqlDatabase,没有发现加载扩展函数的方法,所以自己实现了一个. 在网上也没找到相应的参考, ...
- Spring boot 启动过程解析 logback
使用 Spring Boot 默认的日志框架 Logback. 所有这些 POM 依赖的好处在于为开发 Spring 应用提供了一个良好的基础.Spring Boot 所选择的第三方库是经过考虑的,是 ...
- FragmentPagerAdapter刷新fragment最完美解决方案
FragmentPagerAdapter刷新fragment最完美解决方案 先感谢kingjxl2006的博客文章<Android FragmentPagerAdapter数据刷新notif ...
- android -- 蓝牙 bluetooth (三)搜索蓝牙
接上篇打开蓝牙继续,来一起看下蓝牙搜索的流程,触发蓝牙搜索的条件形式上有两种,一是在蓝牙设置界面开启蓝牙会直接开始搜索,另一个是先打开蓝牙开关在进入蓝牙设置界面也会触发搜索,也可能还有其它触发方式,但 ...
- cocos2d-x 之Scene和Layer
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- 我的Python成长之路---第三天---Python基础(10)---2016年1月16日(雾霾)
二.collections collections是对Python现有的数据类型的补充,在使用collections中的对象要先导入import collections模块 1.Counter——计数 ...
- Java--对象内存布局
在HotSpot虚拟机中,对象在内存中的存储布局可以分为3块区域:对象头部.实例数据.对齐填充. 一.对象头部Header的布局 Mark Word Class 指针 在32位系统下,上面两部分各占4 ...
- HDU 5025Saving Tang Monk BFS + 二进制枚举状态
3A的题目,第一次TLE,是因为一次BFS起点到终点状态太多爆掉了时间. 第二次WA,是因为没有枚举蛇的状态. 解体思路: 因为蛇的数目是小于5只的,那就首先枚举是否杀死每只蛇即可. 然后多次BFS, ...