Enterprise Library Logging Application Block Step by Step(2)

来源:互联网 发布:金山毒霸网络测速 编辑:程序博客网 时间:2024/05/21 07:02

任务一:打开DataAccessApp 项目,继续前一个实验。

 

Demo2  使用编程的方法来配置Data Access Application Block

 

任务一:建立新的项目。

1.     打开Visual Studio 2008 ,单击“文件”,指向“新建”,选择“项目”。然后,在弹出的新建项目的窗体中选择“控制台应用程序”,在名称的文本框中输入LoggingAppTest , 如图2.1 所示。

6

2.1 新建项目

任务二:新建类。选择LoggingAppTest 节点,右键单击,选择“添加”,指向“新建项”。在弹出的添加新项窗体中选择“类”,在名称文本框中输入MyLogger.cs 。如图2.2 所示

7

2.2  添加类

任务三:添加引用。

1.       找到“引用”文件夹,右键单击,并选择“添加引用”,在弹出的窗体中选择“浏览”,文件路径为“ ../ application/lib/.. , 选择Microsoft.Practice.EnterpriseLibrary.Logging.dll Microsoft.Practice.EnterpriseLibrary.Common.dll 文件。单击“确定”。如图2.3 所示。

8

2.3 添加引用

2.       使用Using 语句添加命名空间到Logger.cs 类中。

using Microsoft.Practices.EnterpriseLibrary.Common.Configuration ;

using Microsoft.Practices.EnterpriseLibrary.Logging;

using Microsoft.Practices.EnterpriseLibrary.Logging.Configuration;

using Microsoft.Practices.EnterpriseLibrary.Logging.Filters;

using Microsoft.Practices.EnterpriseLibrary.Logging.Formatters;

using Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners;

任务四:添加代码。

1. Logger.cs 类中添加如下代码。

namespace EnoughPI.Logging

{

    public static class MyLogger

    {

        static readonly LogWriter _writer;

       // 日志记录的类别

        const string ErrorCategory = "Error" ;

        const string DebugCategory = "Debug" ;

        // 文本文件路径

        const string LoadFilePath = @"d://Share//message.log" ;

        // 模板

        const string Template = "Timestamp: {timestamp}{newline}" +

                            "Message: {message}{newline}" +

                            "Category: {category}{newline}" +

                            "Machine: {machine}{newline}" ;

        static MyLogger()

        {

            // 使用前面定义的模板实例化一个TextFormatter

            TextFormatter formatter = new TextFormatter (Template);

            // 实例化TraceListener ,记录到文本文件用FlatFileTraceListener

            FlatFileTraceListener logFileListener = new FlatFileTraceListener (LoadFilePath, "---------" , "---------" , formatter);

            // 这里是TraceListeners 集合,可以添加多个

            LogSource mainLogSource = new LogSource ("MainLogSource " ,System.Diagnostics.SourceLevels .All );

            mainLogSource.Listeners.Add(logFileListener);

            IDictionary <string , LogSource > traceSources = new Dictionary <string , LogSource >();

            traceSources.Add(ErrorCategory, mainLogSource);

            traceSources.Add(DebugCategory, mainLogSource)

            // 用来表示不记录日志

            LogSource nonExistantLogSource = new LogSource ("Empty" );

            // 创建一个类别过滤器

            ICollection <string > categoryfilters = new List <string >();

            categoryfilters.Add(DebugCategory);

            CategoryFilter categoryFilter = new CategoryFilter ("CategoryFilter" , categoryfilters, CategoryFilterMode .AllowAllExceptDenied);

             // 把类别过滤器添加到集合中

            ICollection <ILogFilter > filters = new List <ILogFilter >();

            filters.Add(categoryFilter);

            _writer = new LogWriter (filters, traceSources, nonExistantLogSource, nonExistantLogSource,mainLogSource ,ErrorCategory , false , true );

        }

        public static void Write(string message)

        {

            Write(message,ErrorCategory);

        }

        public static void Write(string message,string category)

        {

            LogEntry entry = new LogEntry ();

            entry.Categories.Add(category);

            entry.Message = message;

            _writer.Write(entry );

        }

    }

}

2. Program.cs 文件中添加如下代码。

namespace EnoughPI.Logging

{

    class Program

    {

        static void Main(string [] args)

        {

            MyLogger .Write("MyError" );

            MyLogger .Write("My Debug" ,"Debug" );

        }

    }

}

任务五:运行程序。在D:/Share 文件夹中将找到刚刚运行的日志。如图2.4 所示。

 

9

2.4  日志