Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  


AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml

AspAutocadCDot netExcelFox proHtmlJava
LinuxMathcadPhotoshopPhpSqlVisual studioWindowsXml

The TraceSwitch Class

c

+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

Trimite pe Messenger
Opening shots - So why is this important?
Recursion and argument passing - Call by value
Debugging and Tracing Threads
Unions
Structures: Basics of Structures
Types, Operators and Expressions: Variable Names
Functions and Program Structure: Basics of Functions
The TryEnter() Method
Control Flow: Statements and Blocks
Const and volatile


The TraceSwitch Class

This class is an enhanced version of the BooleanSwitch class because it allows us to choose whether to deactivate tracing functionality or display messages using an importance-based hierarchy. The following table lists the levels:




Trace level

Description

None: Tracing is deactivated.

TraceError: Only the error messages will be written to the listener application.

TraceWarning: Error and warning messages will be written to the listener application.

TraceInformation: Error, warning, and information messages will be written to the listener application.

TraceVerbose: All kinds of messages will be written to the listener application.

So, when an error occurs, you can change the application configuration file, specifying to write just the error messages that you have added to the code to focus our attention just on these messages. The configuration file is the same as for the BooleanSwitch example. What changes is the code, as we have to instantiate an object from the TraceSwitch class. Moreover, we will use the enumeration values within the class to specify the level of the tracing messages. Let's see an example, TraceSwitchExample.cs:

using System;
using System.Threading;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;

namespace TraceSwitchExample

We start by declaring a global TraceSwitch object and then create a new object, giving it the name specified in the configuration file. We add a text file log listener to the application. We then start a new thread that contacts the pubs database within SQL Server in order to retrieve all the records from the authors table.



If the thread has been omitted, the Open() method raises an exception that generates a trace error message:

private static void DBThread()


catch (Exception ex)

finally


Here is the output from the code when the value 1 is specified in the configuration file, which specifies TraceError:

19/04/2002 17:52:23 - Error: ExecuteReader requires an open and available Connection. The
connection's current state is Closed.
Slept for 1 second

Here is the output when the value 3 is specified in the configuration file, which specifies TraceInformation:

19/04/2002 17:54:23 - Entered Main()
19/04/2002 17:54:23 - Entered DBThread()
19/04/2002 17:54:24 - Executing SQL statement
19/04/2002 17:54:24 - Error: ExecuteReader requires an open and available Connection. The
connection's current state is Closed.

The Debug Class

The Debug class provides the same functionality as the Trace class. You will find that it exposes the same methods and properties, with the same tracing results.

When you change the listener application using the Listeners collection provided by the Trace class, you will change the listener application for Debug messages as well.

The big difference between these two classes is in the context in which you should use them. The Debug class is useful when you need to add information during debugging sessions. Before deploying our application, you will build the release version that will remove debug information from our code, automatically. Therefore, you would add Trace class functionalities when you need to check our application during the run time phase.






Politica de confidentialitate



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 400
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2022 . All rights reserved

Distribuie URL

Adauga cod HTML in site