<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Enterprise Library 2.0 Hands On Lab 翻譯(4):日志應用程序塊(一)

      練習1:添加日志記錄到應用程序中

      該練習將示范如何向已有的應用程序中添加日志和監測(Trace姑且這么翻譯吧,不太準確),并通過Enterprise Library Configuration工具來配置TraceListeners。

       

      第一步

      打開EnoughPI.sln項目,默認的安裝路徑應該為C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Logging\exercises\ex01\begin,并編譯。

       

      第二步 關于練習應用程序

      選擇Debug | Start Without Debugging菜單命令并運行應用程序,EnoughPI程序用來計算∏的精度。在NumericUpDown控件中輸入你希望的精度并點擊Calculate按鈕。

       

      第三步 添加日志

      1.選擇EnoughPI項目,選擇Project | Add Reference …菜單命令,在打開的對話框中選擇Browse,并添加如下程序集。

      Microsoft.Practices.EnterpriseLibrary.Logging.dll;

      默認的位置應該是C:\Program Files\Microsoft Enterprise Library January 2006\bin。

      2.在解決方案管理器中選擇Calc\Calculator.cs文件,選擇View | Code菜單命令,并添加如下命名空間。

      using Microsoft.Practices.EnterpriseLibrary.Logging;

      3.記錄計算完成時的信息在Calculator.cs文件的OnCalculated方法中添加如下代碼。

      protected void OnCalculated(CalculatedEventArgs args)

      {

          
      // TODO: Log final result

          LogEntry log 
      = new LogEntry();

          log.Message 
      = string.Format("Calculated PI to {0} digits", args.Digits);

          log.Categories.Add(Category.General);

          log.Priority 
      = Priority.Normal;

       

          Logger.Write(log);

       

          
      if (Calculated != null)

              Calculated(
      this, args);

      }

      創建了一個新的日志項LogEntry并設置參數,使用Logger類的靜態方法Write()記錄到一個或多個TraceListener。注意這里沒有使用硬編碼而使用常量的CategoryPriority,在EnoughPI.LoggingConstants.cs中作了如下定義:

      public struct Priority

      {
          
      public const int Lowest  = 0;

          
      public const int Low     = 1;

          
      public const int Normal  = 2;

          
      public const int High    = 3;

          
      public const int Highest = 4;

      }


      public struct Category

      {

          
      public const string General = "General";

          
      public const string Trace   = "Trace";

      }

      4.記錄計算過程的信息在OnCalculated方法中添加如下代碼。

      protected void OnCalculating(CalculatingEventArgs args)

      {

          
      // TODO: Log progress

          Logger.Write(

              
      string.Format("Calculating next 9 digits from {0}", args.StartingAt),

              Category.General,

              Priority.Low

              );

       

          
      if (Calculating != null)

              Calculating(
      this, args);

       

          
      if (args.Cancel == true)

          
      {

              
      // TODO: Log cancellation

              Logger.Write(
      "Calculation cancelled by user!",

                  Category.General, Priority.High);

          }


      }

      注意這里使用Logger類的重載Write方法來快捷的創建了一個日志項LogEntry。

      5.記錄計算過程的異常信息,添加如下代碼到OnCalculatorException方法中。

      protected void OnCalculatorException(CalculatorExceptionEventArgs args)

      {
          
      // TODO: Log exception

          
      if (!(args.Exception is ConfigurationErrorsException))

          
      {

              Logger.Write(args.Exception, Category.General, Priority.High);

          }


          
      if (CalculatorException != null)

              CalculatorException(
      this, args);

      }

      注意這里必須測試異常不能是ConfigurationErrorsException,否則你將無法使用日志記錄。對于異常信息的處理通常將會創建一個Enterprise Library 異常應用程序塊來處理異常,這在后面的練習中將會看到。

       

      第四步 使用企業庫配置工具

      1.使用Enterprise Library配置工具配置應用程序,可以通過開始菜單打開該配置工具,選擇所有程序| Microsoft patterns and practices | Enterprise Library | Enterprise Library Configuration,并打開App.config文件。或者直接在Visual Studio中使用該工具打開配置文件。

      2.在解決方案管理器中選中App.config文件,在View菜單或者在右鍵菜單中選擇Open With…,將打開OpenWith對話框,單擊Add按鈕。

      3.在Add Program對話框中,設置Program name指向EntLibConfig.exe文件,默認的路徑為C:\Program Files\Microsoft Enterprise Library January 2006\bin,設置Friendly nameEnterprise Library Configuration,單擊OK按鈕。

      Visual Studio會把配置文件(App.config)作為一個命令行參數傳遞給EntLibConfig.exe

      4.在Open With對話框中,選中Enterprise Library Configuration并單擊OK按鈕。

       

      第五步 配置應用程序

      1.在應用程序上右擊并選擇New | Logging Application Block

      2.默認的日志應用程序塊定義了一個名為GeneralCategory,Categories是一組簡單的文本標簽,你可以提交日志信息到一組這樣的CategoryGeneral類別有一個名為Formatted EventLog TraceListenerTraceListener。要添加一個新的Category,在Category Sources上右擊,選擇New | Category。一個Category可以有多個TraceListener,而一個TraceListener也可以被多個Category所引用。

      注意Category其實是日志信息的一種邏輯分類,可以把要記錄的日志信息分為界面日志,異常日志,數據訪問日志等,至于具體記錄到什么位置,則是由TraceListener來決定的。

      3.選擇Logging Application Block | Trace Listeners | Formatted EventLog TraceListener節點,設置Source屬性為EnoughPI。

      注意該TraceListener將使用Text Formatter來格式化日志信息,并且記錄日志信息到Windows Event Log中。

      4.選擇菜單File | Save All保存應用程序的配置,并關閉Enterprise Library Configuration工具。

       

      第六步 運行應用程序

      1.選擇Debug | Start Without Debugging菜單命令并運行應用程序,在NumericUpDown控件中輸入精度并點擊Calculate按鈕。

      2.打開事件查看器。通過開始 | 管理工具 | 時間查看器,查看應用程序記錄的日志信息。

      3.雙擊一條日志項查看詳細的信息。

      4.退出應用程序

       

      第七步 添加監測(Tracing

      1.我們經常需要監測應用程序在一個時間區的情況,日志應用程序塊為我們提供了Tracing的功能。

      2.在解決方案管理器中選擇Calc\Calculator.cs文件,選擇View | Code菜單命令,在方法Calculate中添加如下代碼。

      public string Calculate(int digits)

      {

          StringBuilder pi 
      = new StringBuilder("3", digits + 2);

          
      string result = null;

          
      try

          
      {

              
      if (digits > 0)

              
      {

                  
      // TODO: Add Tracing around the calculation

                  
      using (new Tracer(Category.Trace))

                  
      {

                      pi.Append(
      ".");

                      
      for (int i = 0; i < digits; i += 9)

                      
      {

                          CalculatingEventArgs args;

                          args 
      = new CalculatingEventArgs(pi.ToString(), i + 1);

                          OnCalculating(args);

                          
      // Break out if cancelled

                          
      if (args.Cancel == truebreak;

       

                          
      // Calculate next 9 digits

                          
      int nineDigits = NineDigitsOfPi.StartingAt(i + 1);

                          
      int digitCount = Math.Min(digits - i, 9);

                          
      string ds = string.Format("{0:D9}", nineDigits);

                          pi.Append(ds.Substring(
      0, digitCount));

                      }


                  }


              }


              result 
      = pi.ToString();

              
      // Tell the world I've finished!

              OnCalculated(
      new CalculatedEventArgs(result));

          }


          
      catch (Exception ex)

          
      {

              
      // Tell the world I've crashed!

              OnCalculatorException(
      new CalculatorExceptionEventArgs(ex));

          }


          
      return result;

      }

      3.在解決方案管理器中選擇App.config,選擇View | Open With…菜單命令,選擇Enterprise Library Configuration并單擊OK按鈕。

      4.選擇Logging Application Block節點,設置TracingEnabled屬性為True。

      5.添加新的TraceListener,選中Logging Application Block | Trace Listeners節點,并選擇Action | New | FlatFile TraceListener菜單命令。

      6.設置Formatter屬性為Text Formatter。


      7
      .添加新的監測類別。選中Logging Application Block | Category Sources節點,并選擇Action | New | Category菜單命令。

      8.設置Name屬性為TraceSourceLevels屬性為ActivityTracing。

      這里的類別名Trace將會在代碼中使用,設置ActivityTracing級別只會在日志項開始和結束的時候記錄監測日志信息。

      9.右擊新的類別Trace,并選擇New | Trace Listener Reference,設置ReferencedTraceListener屬性為FlatFile TraceListener

      10.選擇菜單File | Save All保存應用程序的配置,并關閉Enterprise Library Configuration工具。

      11.選擇Debug | Start Without Debugging菜單命令并運行應用程序,在NumericUpDown控件中輸入精度并點擊Calculate按鈕。

      12.現在可以在文件trace.log中看到監測日志信息。

      ----------------------------------------

      Timestamp: 
      13/12/2005 6:08:01 AM

      Message: Start Trace: Activity 
      '8c07ce3b-235b-4a51-bdcc-83a5997c989e' in method 'Calculate' at 71661842482 ticks

      Category: Trace

      Priority: 
      5

      EventId: 
      1

      Severity: Start

      Title:TracerEnter

      Machine: TAGGERT

      Application Domain: EnoughPI.exe

      Process Id: 
      6016

      Process Name: C:\Program Files\Microsoft Enterprise Library\labs\cs\Logging\exercises\ex01\begin\EnoughPI\bin\Debug\EnoughPI.exe

      Win32 Thread Id: 
      6092

      Thread Name: 

      Extended Properties: 

      ----------------------------------------

      ----------------------------------------

      Timestamp: 
      13/12/2005 6:08:01 AM

      Message: End Trace: Activity 
      '8c07ce3b-235b-4a51-bdcc-83a5997c989e' in method 'Calculate' at 71662624219 ticks (elapsed time: 0.218 seconds)

      Category: Trace

      Priority: 
      5

      EventId: 
      1

      Severity: Stop

      Title:TracerExit

      Machine: TAGGERT

      Application Domain: EnoughPI.exe

      Process Id: 
      6016

      Process Name: C:\Program Files\Microsoft Enterprise Library\labs\cs\Logging\exercises\ex01\begin\EnoughPI\bin\Debug\EnoughPI.exe

      Win32 Thread Id: 
      6092

      Thread Name: 

      Extended Properties: 

      ----------------------------------------

      13.關閉應用程序和Visual Studio。

      完成后的解決方案代碼如C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Logging\exercises\ex01\end所示。

       

      更多Enterprise Library的文章請參考《Enterprise Library系列文章

      posted @ 2006-10-06 15:59  TerryLee  閱讀(10690)  評論(7)    收藏  舉報
      主站蜘蛛池模板: 建德市| 亚洲精品天堂一区二区| 国产综合色在线精品| 国产肥妇一区二区熟女精品| 亚洲国产日韩a在线亚洲| 亚洲国产另类久久久精品黑人| 中文字幕久久熟女蜜桃 | 亚洲一区二区三区av无码| 99精品国产一区二区三| 性欧美vr高清极品| 口爆少妇在线视频免费观看| 亚洲a免费| 色秀网在线观看视频免费| 非会员区试看120秒6次| 国产情侣激情在线对白| 精品国产成人网站一区在线| 免费a级毛片18以上观看精品| 亚洲综合精品第一页| 成人免费无码av| 午夜成年男人免费网站| 久久99国产精品久久99| 开心五月深深爱天天天操| 国产亚洲精品中文字幕| 亚洲国产精品久久久久秋霞影院| 国产一区二区三区四区激情 | 国産精品久久久久久久| 国产精品午夜福利精品| 漂亮人妻被黑人久久精品| 日本一区二区三区小视频| 香蕉EEWW99国产精选免费| 亚洲狠狠婷婷综合久久久久图片| 国产又色又爽又高潮免费| 极品白嫩少妇无套内谢| 中文国产成人精品久久不卡| 国产短视频一区二区三区| 成人3D动漫一区二区三区| 四虎永久在线精品免费播放| 懂色AV| 日韩精品人妻中文字幕| 被灌满精子的波多野结衣| 亚洲国产精品一二三四五|