Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - Programmierung » .NET-Anwendungsprogrammierung » SQL Anywhere .NET-Datenprovider

 

Unterstützung der .NET-Protokollierung

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 [external link] http://msdn.microsoft.com/de-de/library/ms971550.aspx.


Konfigurieren einer Windows-Anwendung für die Protokollierung