摘要:
前面的几篇文章已经比较完整地解释了怎么使用Log4Net,但是我们可能需要将Log4Net的日志类封装在自己的类库中,以便C/S或B/S程序进行调用。下面的示例程序简单地分为两层,一个是应用程序层WebApplication_testLog4Net,另一个就是公用类库Common。1、首先,我们还是在类库中先添加Log4net的引用2、直接在类库Common中的AssemblyInfo.cs中添加Log4Net的配置文件地址。3、log4net.config还是放在应用程序那层(如左图),以便正确地输出到应用程序的输出目录。如果放在类库层的话,它就会输出到类库的生成目录,而Log4Net只会到 阅读全文
摘要:
毕竟人不是神,谁写的程序都会有bug,有了bug不可怕,可怕的是出错了,你却不知道错误在哪里。所以我们需要将应用程序中抛出的所有异常都记录起来,不然出了错,找问题就能要了你的命。下面我们主要讨论的是如何捕捉全局的异常。基本上在winform或web中捕获全局异常的思路都是一样的,在全局的应用程序对象中添加异常捕获的代码,并写入日志文件中。一.在Winform程序中捕获全局异常在winfrom中我们需要了解Application对象中的两个事件①Application.ThreadException 事件--在发生未捕获UI线程异常时发生。②AppDomain.UnhandledExceptio 阅读全文
摘要:
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件。 先不分析上面这段配置信息是什么意思。我们先来回想一下我们的日志类通常用来做什么,假设我们有一个库存管理系统,分为两大模块,一个是出库,一个是入库。我们可能想要出库的相关信息保存在某一个文件夹里面,入库的信息存在另一个文件夹里面。这样,我们... 阅读全文
摘要:
不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手。即使你对Log4Net的配置不熟悉也完全没有关系。(下面的文章假定你已经看过了第一篇,当然在有的操作中,我还是会简单地重复第一篇,以便加深你的记忆)先说说这篇教程的思路,我们打算使用Log4Net,首先必须先引入Log4Net的库;然后我们要对Log4Net进行一些配置;最后,我们会在代码里面使用它。1、引入Log4Net.dll组件→见第一篇2、自定义Log4Net配置文件的引入与第一篇不同的是,我们将不再App.config或Web 阅读全文
摘要:
首先让我们先把Log4Net跑起来,示例代码在文章最后面可以下载1、先把Log4Net引入到工程中,为了演示方便,我们先建立一个winform程序。在程序的根目录下面,建立一个Libs文件夹,以便存放Log4Net的DLL文件。2、进行一些简单的配置,先不讲配置文件的作用,大家照我写的输入。下面代码库的内容是在App.config文件中输入的,如果大家没有App.config文件,可以通过在解决方案中,添加新建项→应用程序配置文件,进行添加。 3、在As... 阅读全文
摘要:
为了方便开发人员使用反射或者与基本组件通信,c#编译器允许将一个表达式的类型标记为dynamic。还可将一个表达式的结果放到一个变量中,并将变量的类型标记为dynamic,然后,用这个dynamic表达式调用一个成员。如下面代码: 1 static void Main(string[] args) 2 { 3 for (int i = 0; i < 2; i++) 4 { 5 dynamic arg = (i == 0) ? (dynamic)5 : (dynamic)"A"; 6 ... 阅读全文