Der SQL Anywhere-.NET-Datenprovider unterstützt die Protokollierung mithilfe der .NET-Protokollierungsfunktion. Die Protokollierung wird unter Windows Mobile nicht unterstützt.
Standardmäßig ist die Protokollierung deaktiviert. Wenn Sie die Protokollierung aktivieren möchten, geben Sie die zu verwendende Quelle in der Konfigurationsdatei Ihrer Anwendung an.
Im Folgenden finden Sie ein Beispiel einer Konfigurationsdatei:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <source name="iAnywhere.Data.SQLAnywhere" switchName="SASourceSwitch" switchType="System.Diagnostics.SourceSwitch"> <listeners> <add name="ConsoleListener" type="System.Diagnostics.ConsoleTraceListener"/> <add name="EventListener" type="System.Diagnostics.EventLogTraceListener" initializeData="MyEventLog"/> <add name="TraceLogListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="myTrace.log" traceOutputOptions="ProcessId, ThreadId, Timestamp"/> <remove name="Default"/> </listeners> </source> </sources> <switches> <add name="SASourceSwitch" value="All"/> <add name="SATraceAllSwitch" value="1" /> <add name="SATraceExceptionSwitch" value="1" /> <add name="SATraceFunctionSwitch" value="1" /> <add name="SATracePoolingSwitch" value="1" /> <add name="SATracePropertySwitch" value="1" /> </switches> </system.diagnostics> </configuration> |
Es gibt vier Arten von Trace-Listener, die in der oben gezeigten Konfigurationsdatei zu sehen sind.
ConsoleTraceListener Protokollierung oder Fehlersuchausgabe wird an die Standardausgabe oder den STDERR-Datenstrom geleitet. Wenn Sie Microsoft Visual Studio verwenden, erscheint die Ausgabe im Ausgabe-Fenster.
DefaultTraceListener Dieser Listener wird mit dem Namen "Default" automatisch den Debug.Listeners- und Trace.Listeners-Sammlungen hinzugefügt. Protokollierung oder Fehlersuchausgabe wird an die Standardausgabe oder den STDERR-Datenstrom geleitet. Wenn Sie Microsoft Visual Studio verwenden, erscheint die Ausgabe im Ausgabe-Fenster. Um ein Duplizierung des von ConsoleTraceListener produzierten Ausgabe zu vermeiden, wurde dieser Listener entfernt.
EventLogTraceListener Protokollierung oder Fehlersuchausgabe wird an ein EventLog geleitet, das in der Option initializeData definiert wird. In dem Beispiel heißt das Ereignisprotokoll MyEventLog. Schreiben in das Systemereignisprotokoll erfordert keine Administratorrechte und ist keine empfohlene Methode für die Fehlersuche in Anwendungen.
TextWriterTraceListener Protokollierung oder Fehlersuchausgabe wird an einen TextWriter geleitet, der den Datenstrom in die Datei schreibt, die in der Option initializeData festgelegt ist.
Um die Protokollierung in einem der oben beschriebenen Trace-Listener zu deaktivieren, entfernen Sie den entsprechenden add-Eintrag aus <listeners>.
Die Trace-Konfigurationsinformationen werden in den Projektordner der Anwendung in der Datei App.config gespeichert. Wenn die Datei nicht existiert, kann sie mit Visual Studio erstellt werden: Hinzufügen » Neues Element, Auswahl von Anwendungskonfigurationsdatei.
traceOutputOptions können für alle Listener festgelegt werden und enthalten:
Callstack Schreibt den Aufruf-Stack, der vom Rückgabewert der Eigenschaft Environment.StackTrace repräsentiert wird.
DateTime Schreibt das Datum und die Uhrzeit.
LogicalOperationStack Schreibt den Stack für die logischen Vorgänge, der vom Rückgabewert der Eigenschaft CorrelationManager.LogicalOperationStack repräsentiert wird.
None Schreibt keine Elemente.
ProcessId Schreibt die Prozess-ID, die vom Rückgabewert der Eigenschaft Process.Id repräsentiert wird.
ThreadId Schreibt die Thread-ID, die vom Rückgabewert der Eigenschaft Thread.ManagedThreadId für den aktuellen Thread repräsentiert wird.
Timestamp Schreibt den Zeitstempel, der vom Rückgabewert der Methode System.Diagnostics.Stopwatch.GetTimeStamp repräsentiert wird.
Die Beispielkonfigurationsdatei (siehe oben) legt die Trace-Ausgabeoptionen nur für TextWriterTraceListener fest.
Mit spezifischen Protokolloptionen können Sie begrenzen, welche Elemente protokolliert werden. Standardmäßig sind alle Trace-Optionen mit nummerischen Werten auf 0 gesetzt. Zu den Trace-Optionen, die Sie festlegen können, gehören folgende:
SASourceSwitch SASourceSwitch kann jeden der folgenden Werte annehmen. Wenn der Wert Off ist, erfolgt keine Protokollierung.
Off Lässt keine Ereignisse durch.
Critical Lässt nur kritische Ereignisse durch.
Error Lässt kritische und Fehlerereignisse durch.
Warning Lässt kritische, Fehler- und Warnungsereignisse durch.
Information Lässt kritische, Fehler-, Warnungs- und Informationsereignisse durch.
Verbose Lässt kritische, Fehler-, Warnungs-, Informations- und Verbose-Ereignisse durch.
ActivityTracing Lässt Stopp-, Start-, Aussetzen-, Übertragungs- und Wiederaufnahmeereignisse durch.
All Lässt alle Ereignisse durch.
Beispiel für eine Einstellung:
<add name="SASourceSwitch" value="Error"/> |
SATraceAllSwitch Alle Trace-Optionen sind aktiviert. Es ist in diesem Fall nicht erforderlich, weitere Optionen anzugeben, da damit alle ausgewählt werden. Wenn Sie diese Option auswählen, können Sie keine einzelnen Optionen deaktivieren. Es ist z.B. nicht möglich, die Protokollierung von Ausnahmebedingungen mit folgenden Anweisungen zu deaktivieren.
<add name="SATraceAllSwitch" value="1" /> <add name="SATraceExceptionSwitch" value="0" /> |
SATraceExceptionSwitch Alle Ausnahmebedingungen werden protokolliert. Protokollmeldungen haben das folgende Format.
<Type|ERR> message='message_text'[ nativeError=error_number] |
Der Text nativeError=error_number wird nur angezeigt, wenn ein SAException-Objekt vorhanden ist.
SATraceFunctionSwitch Alle Eintritte/Austritte des Funktionsbereichs werden protokolliert. Protokollmeldungen können die folgenden Formate haben.
enter_nnn <sa.class_name.method_name|API> [object_id#][parameter_names] leave_nnn |
"nnn" steht für eine Ganzzahl, die die Verschachtelungsebene 1, 2, 3 usw. des Bereichs darstellt. Der optionale Parameter parameter_names ist eine Liste von durch Leerzeichen getrennten Parameternamen.
SATracePoolingSwitch Alle Verbindungspools werden protokolliert. Protokollmeldungen können die folgenden Formate haben.
<sa.ConnectionPool.AllocateConnection|CPOOL> connectionString='connection_text' <sa.ConnectionPool.RemoveConnection|CPOOL> connectionString='connection_text' <sa.ConnectionPool.ReturnConnection|CPOOL> connectionString='connection_text' <sa.ConnectionPool.ReuseConnection|CPOOL> connectionString='connection_text' |
SATracePropertySwitch Alle Einstellungen und Abrufe von Eigenschaften werden protokolliert. Protokollmeldungen können die folgenden Formate haben.
<sa.class_name.get_property_name|API> object_id# <sa.class_name.set_property_name|API> object_id# |
Weitere Hinweise finden Sie unter "Tracing Data Access" unter http://msdn.microsoft.com/de-de/library/ms971550.aspx.
Konfigurieren einer Windows-Anwendung für die Protokollierung
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |