为程序添加日志记录
在这个小练习中,我们将创建一个实例程序并配置其使用Log4Net日志记录框架,然后创建一些基本的日志记录信息。
1. 打开Visual Studio,创建一个控制台应用程序:LoggingSample。
2. 添加对log4net.dll程序集的引用。
3. 右击LoggingSample项目,选择属性,在Application选项卡中,设置Target framework为.NET Framework 4。
4. 为项目添加一个配置文件App.config,如果已经存在了,就不用添加了。在配置文件中配置应用程序通过定义log4net节使用Log4Net,代码如下:
上面的代码中定义了一个log4net节。conversionPattern描述日志输出应如何格式化,appender是告诉Log4Net应该使用哪个appender,level是定义我们想启用的输出级别。该级别从低到高是DEBUG<INFO<WARN<ERROR<FATALNONE。
5. 在Program类中,为该类文件添加XmlConfigurator特性,注意添加到命名空间上面:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
7. 在Program类中,添加并初始化一个类型为ILog的静态类级别变量,如下面的代码所示:
private static readonly ILog log = LogManager.GetLogger(typeof(Program));
8. 使用logger产生一些不同级别的的日志信息。代码如下:
static void Main(string[] args){ log.Debug("This is a Debug message."); log.Info("This is a Info message."); log.Warn("This is a Warn message."); log.Error("This is a Error message."); log.Fatal("This is a Fatal message."); Console.Write("\r\nHit enter to exit:"); Console.ReadLine();}
9. 运行程序,结果如下图所示:
10. 在App.config中,修改日志记录级别为WARN,再次运行程序,如下图所示:
在NHibernate中启用日志记录
如前面所述,NHibernate使用Log4Net生成日志信息。现在我们已经对Log4Net的相关知识有了一定理解以及如何配置它们,根据程序需求我们可以使用这些知识为NHibernate设置日志记录。
1. 打开上一篇的OrderingSystem解决方案。
2. 在OrderingSystem.Tests中添加对log4net.dll的引用。
3. 为OrderingSystem.Tests添加一个App.config配置文件,代码如下所示:
4. 打开entity_mapping_specs类,添加代码为单元测试初始化日志记录,如下所示:
protected override void BeforeAllTests(){ base.BeforeAllTests(); log4net.Config.XmlConfigurator.Configure();}
5. 运行测试,结果如下图所示:
6. 这是全部的信息,但是我们想减少它。NHibernate定义了两个logger:NHibernate和NHibernate.SQL。我们可以分别配置这两个logger。在App.config文件中<root>标签前边添加如下代码:
7. 修改之后,再次运行测试,结果如下图所示: