技术开发 频道

Enterprise Library 2.0:日志应用程序块(一)

第七步 添加监测(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 == true) break; // 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所示。

 

 

0
相关文章