在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用

前面的几篇文章已经比较完整地解释了怎么使用Log4Net,但是我们可能需要将Log4Net的日志类封装在自己的类库中,以便C/S或B/S程序进行调用。下面的示例程序简单地分为两层,一个是应用程序层WebApplication_testLog4Net,另一个就是公用类库Common。

1、首先,我们还是在类库中先添加Log4net的引用

2、直接在类库Common中的AssemblyInfo.cs中添加Log4Net的配置文件地址。

3、log4net.config还是放在应用程序那层(如左图),以便正确地输出到应用程序的输出目录。如果放在类库层的话,它就会输出到类库的生成目录,而Log4Net只会到应用程序的输出目录去找对应的配置文件。记得要设置Log4net的属性(如右图)。

     

4、这样我们就可以直接在应用程序中使用已经自己封装的Log4Net类了。记得要先引用Common类库。在下面我创建一个按钮,然后将当前时间作为日志输出。

按钮对应的代码

protected void Button2_Click(object sender, EventArgs e)
        {
            LogHelper.WriteLog("输出一些信息"+DateTime.Now.ToString());
        }

输出结果

 

示例程序下载

作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/p/3394430.html

时间: 2024-12-22 14:22:02

在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用的相关文章

x264代码剖析(十五):核心算法之宏块编码中的变换编码

x264代码剖析(十五):核心算法之宏块编码中的变换编码           为了进一步节省图像的传输码率,需要对图像进行压缩,通常采用变换编码及量化来消除图像中的相关性以减少图像编码的动态范围.本文主要介绍变换编码的相关内容,并给出x264中变换编码的代码分析.   1.变换编码           变换编码将图像时域信号变换成频域信号,在频域中图像信号能量大部分集中在低频区域,相对时域信号,码率有较大的下降. H.264对图像或预测残差采用4×4整数离散余弦变换技术,避免了以往标准中使用的通

WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用

原文:WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用 [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]如果一个类型,不一定是数据契约,和给定的数据契约具有很大的差异,而我们要将该类型的对象序列化成基于数据契约对应的XML.反之,对于一段给定的基于数据契约的XML,要通过反序列化生成该类型的对象,我们该如何实现这样的场景? 比如下面定义了两个类型Contact和Customer,

如何将数据表中某个字段的内容选出来插入到另一个数据表中,并显示到Gridview中,用一次数据库连接可否?(用代码实现)

问题描述 如何将数据表中某个字段的内容选出来插入到另一个数据表中,并显示到Gridview中,用一次数据库连接可否?(用代码实现) 解决方案 解决方案二:建个临时表,存放Table1的全部数据和Table2的某个字段的数据临时表的字段为Table1的字段+Table2的某个字段GridView的DataSource设置为这个临时表就可以了解决方案三:LZ,你说的这种情况肯定是可以实现的.但是你的意思没有表达的很清楚啊.你是希望从第一个表中哦啊选出来的数据怎么插入第二个表中呢?说清楚你的要求,兄弟

浅谈网站建设中常见的五种误区

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 大家都知道网站建设相对网站推广来说是比较简单的,因为现在利用CMS系统能够很容易的架构起来一个功能非常足的网站,但是如果把这个网站推广出去却变得非常的困难,实际上在网站建设的时候只要避免下面的五种误区就能够增加推广的效果,甚至能够起到事半功倍的作用,下面我们就来介绍网站建设中常见的五种误区! 一:友情链接的误区 友情链接对于一个网站来说是非常

可配置语法分析器开发纪事(五) 构造一个真正能用的状态机(中)

上一篇博客写到了如何给一个非终结符的文法规则构造出一个压缩过的下推状态机,那么今天说的就是如何把所有的文法都连接起来.其实主要的idea在(三)和他的勘误(三点五)里面已经说得差不多了.但是今天我们要处理的是带信息的transition,所以还有一些地方要注意. 所以在这里我们先把几条文法的最后的状态机都列出来(大图): 开发纪事(五) 构造一个真正能用的状态机(中)-语法树构造"> 本栏目更多精彩内容:http://www.bianceng.cn/Programming/cplus/

在win7系统中使用王码五笔会让IE浏览器无响应怎么办?

  浏览器,是咱们Windows系统用来搜索网上资源的工具,一般来说,咱们Windows系统装机的时候就会自带有浏览器,在win10系统之前,咱们的winxp系统,w764位旗舰版系统,还有win8系统,Windows系统自带的都是IE浏览器,由此可见,浏览器在咱们Windows系统中是扮演着一个极其重要的角色的.同样的,咱们Windows系统中的输入法也非常的重要,因为必须要有输入法,咱们才能正常的在Windows系统中实现输入,搜索自己想要的东西,但是最近,却有使用win7旗舰版系统的用户咨

复制静态网页广告代码-在wordpress中复制后的静态网页怎么能上传到web目录中

问题描述 在wordpress中复制后的静态网页怎么能上传到web目录中 在wordpress的网页制作中,发现别的一个网站的广告很适合自己的网站,怎样把别人的广告代码给复制过来?同时这个网站也是静态网页,跟自己的网页相似就把对方的网页代码复制过来,怎样把对方的网站广告代码给弄到自己的网站上?谢谢!

Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(五)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 为了暂时不影响原来的cat移动方法,我们在CatSprite.m中新建一个移动方法,内容如下,其中考虑了与地图的碰撞情况: -(void)moveTowardOneTile:(CGPoint)location{ CGPoint diff = ccpSub(location, self.position); CGPoint desiredTileCoord = [

new person-我这有段代码,我对于它的执行顺序存在疑惑,为什么在父类中创建对象的操作会先于构造器执行?

问题描述 我这有段代码,我对于它的执行顺序存在疑惑,为什么在父类中创建对象的操作会先于构造器执行? public class Test { Person person = new Person("Test"); static{ System.out.println("test static"); } public Test() { System.out.println("test constructor"); } public static vo