在C#代码中应用Log4Net(二)典型的使用方式
不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手。即使你对Log4Net的配置不熟悉也完全没有关系。
(下面的文章假定你已经看过了第一篇,当然在有的操作中,我还是会简单地重复第一篇,以便加深你的记忆)
先说说这篇教程的思路,我们打算使用Log4Net,首先必须先引入Log4Net的库;然后我们要对Log4Net进行一些配置;最后,我们会在代码里面使用它。
1、引入Log4Net.dll组件→见第一篇
2、自定义Log4Net配置文件的引入
与第一篇不同的是,我们将不再App.config或Web.config(应用程序配置文件)中配置Log4Net文件了,我们打算在App.config中配置少许的必要信息,然后将具体的配置信息在一个XML文件中配置Log4Net这样的话,不会让App.Config太过于臃肿,它的可移植性也会更好。
2.1 我们将log4net.config文件引入到项目中,同时让它复制到输出目录。因为log4net框架会在相对于AppDomain.CurrentDomain.BaseDirectory 属性定义的目录路径下查找配置文件。框架在配置文件里要查找的唯一标识是<log4net>标签。(log4net.config可以在文章末尾下载)

跟文章(一)比起来,我们的App.config文件现在就清爽多了
2.2 在文章(一)中,我们没有指定具体使用什么文件,Log4Net自动帮我们选择使用app.config文件了,现在我们有了自己的配置文件,自然需要指定一下使用哪一个配置文件,不能再让Log4Net帮我们自动选择了。我们只需要在AssemblyInfo.cs文件中写一句话指定使用哪个配置文件即可。
[assembly: log4net.Config.XmlConfigurator( ConfigFile="log4net.config", ConfigFileExtension = "config", Watch = true)]
3.在代码中使用Log4Net
我封装了一个类叫LogHelper,里面的两个logger类,分别对应在Log4Net.config中的两个Logger。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Common
{
public class LogHelper
{
public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); public static void WriteLog(string info)
{ if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
}
} public static void WriteLog(string info, Exception se)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, se);
}
}
}
}
像文章(一)一样,我们建立一个winform程序,添加一个按钮,在按钮中写入如下的点击事件。

4、运行效果
日志文件在“程序的输出目录(就是Debug文件夹)\Log\LogInfo”

小提示
在文章中的log4net.config文件可以在示例程序中找到。
在C#代码中应用Log4Net(二)典型的使用方式的更多相关文章
- 在C#代码中应用Log4Net(二)典型的使用方式(转)
不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手.即使你对Log4Net的配置不熟悉也完全 ...
- 在C#代码中应用Log4Net系列教程(附源代码)
Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...
- 在C#代码中应用Log4Net系列教程
在C#代码中应用Log4Net系列教程(附源代码) Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4 ...
- [转]在C#代码中应用Log4Net系列教程(附源代码)
Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...
- 在C#代码中应用Log4Net(三)Log4Net中配置文件的解释
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...
- 在C#代码中应用Log4Net 中配置文件的解释
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...
- 通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制
通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制 前言说明 本篇为网易云课堂Linux内核分析课程的第四周作业,我将通过调用C语言的库函数与在C代码中 ...
- 在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用
前面的几篇文章已经比较完整地解释了怎么使用Log4Net,但是我们可能需要将Log4Net的日志类封装在自己的类库中,以便C/S或B/S程序进行调用.下面的示例程序简单地分为两层,一个是应用程序层We ...
- 在C#代码中应用Log4Net(一)简单使用Log4Net
首先让我们先把Log4Net跑起来,示例代码在文章最后面可以下载 1.先把Log4Net引入到工程中,为了演示方便,我们先建立一个winform程序.在程序的根目录下面,建立一个Libs文件夹,以便存 ...
随机推荐
- 用goto做异常处理
http://www.cnblogs.com/trying/archive/2012/06/25/2863753.html 今天在CSDN上看到的关于错误返回值的讨论,感觉非常有趣. 从中可以看出被教 ...
- TDD学习笔记【四】--- 如何隔离相依性 - 基本的可测试性
前言 相信许多读者都听过「可测试性」,甚至被它搞的要死要活的,还觉得根本是莫名其妙,徒劳无功.今天这篇文章,主要要讲的是对象的相依性,以及对象之间直接相依,会带来什么问题.为了避免发生因相依性而导致设 ...
- WPF下的Richtextbox中实现表格合并,添加删除行列等功能
.Net中已有现在的方法实现这些功能,不过可能是由于未完善,未把方法公开出来.只能用反射的方法去调用它. 详细信息可以查看.Net Framework 的源代码 http://referencesou ...
- Centos 6.5 X64 环境下编译 hadoop 2.6.0 --已验证
Centos 6.5 x64 hadoop 2.6.0 jdk 1.7 protobuf-2.5.0 maven-3.0.5 set environment export JAVA_HOME=/hom ...
- 主机信息收集工具DMitry
主机信息收集工具DMitry DMitry是Kali Linux内置的一款信息收集工具.它的目标主要是Web类主机.它不仅通过主动查询.端口扫描方式,还借助第三方网站和搜索引擎获取信息. 它搜集的 ...
- Format
strTimeZone := Format('%s ~ %s',[formatdatetime('yyyy-mm-dd',dtpStartTime.DateTime), formatdatetime( ...
- 解决vsftpd的refusing to run with writable root inside chroot错误
参考 http://www.cnblogs.com/CSGrandeur/p/3754126.html 在Ubuntu下用 vsftpd 配置FTP服务器,配置 “ sudo chmod a-w /h ...
- HDU3948 & 回文树模板
Description: 求本质不同回文子串的个数 Solution: 回文树模板,学一学贴一贴啊... Code: /*================================= # Cre ...
- 队列的JS实现
队列和栈相似,都是对插入和删除操作的部位做了限制特殊的线性表.在队列中,只能从一头删除节点,这一头叫做队首:而另一端只能做插入操作,这一头叫做队尾.很容易理解,队列是一个"先进先出" ...
- Lession1 写在机器学习之前
机器学习从学习方式上来讲,可以分为两类: 监督学习(Supervised Learning),简而言之就是“有标签”学习 无监督学习(Unsupervised Learning),简而言之就是“无标签 ...