Der SQL Anywhere-.NET-Provider unterstützt die Protokollierung mit der .NET -Protokollierungsfunktion. Beachten Sie, dass die Protokollierung unter Windows Mobile nicht unterstützt wird.
Standardmäßig ist die Protokollierung deaktiviert. Um sie zu aktivieren, geben Sie die Protokollierungsquelle in der Konfigurationsdatei der Anwendung an. 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> |
Die Konfigurationsinformationen für die Protokollierung befinden sich im Ordner bin\debug der Anwendung unter dem Namen Anwendung.exe.config.
Folgende Optionen für die Protokollierung (traceOutputOptions
) können festgelegt werden:
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.
Keine 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.
Mit spezifischen Protokolloptionen können Sie begrenzen, welche Elemente protokolliert werden. Standardmäßig sind alle Protokolloptionen auf 0 gesetzt. Folgende Protokolloptionen sind verfügbar:
SATraceAllSwitch Der Parameter zum Protokollieren aller Elemente. Wenn diese Option angegeben wird, sind alle Protokolloptionen 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 |
Hierbei steht "nnn" für eine Ganzzahl, die die Verschachtelungsebene 1, 2, 3 usw. des Bereichs repräsentiert. Der optionale Parameter parameter_names ist eine Liste der 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# |
Sie können die Anwendungsprotokollierung unter Verwendung des TableViewer-Beispiels testen.
Starten Sie Visual Studio und öffnen Sie die TableViewer-Projektdatei (TableViewer.sln) unter Beispielverzeichnis\SQLAnywhere\ADO.NET\TableViewer.
Stellen Sie eine Kopie der Konfigurationsdatei unter dem Namen TableViewer.exe.config in den Ordner bin\debug der Anwendung.
Wählen Sie im Menü "Debuggen" den Befehl "Debuggen starten".
Wenn die Ausführung der Anwendung abgeschlossen ist, wird unter Beispielverzeichnis\SQLAnywhere\ADO.NET\TableViewer\bin\Debug\myTrace.log eine Ausgabedatei gespeichert.
Die Protokollierung wird unter Windows Mobile nicht unterstützt.
Weitere Hinweise finden Sie unter "Tracing Data Access" unter http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadonet/html/tracingdataaccess.asp.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |