Das sogenannte Logging, also das Mitprotokollieren

Größe: px
Ab Seite anzeigen:

Download "Das sogenannte Logging, also das Mitprotokollieren"

Transkript

1 Logging von.net-anwendungen mit Windows-Mitteln Am laufenden Band Betreiber komplexer Systeme sind darauf angewiesen, jederzeit Informationen über den Zustand ihrer Anwendung abrufen zu können. Mit dem Semantic Logging Block der Enterprise Library lässt sich das ETW dazu einsetzen. Auf einen Blick Holger Zaman ist Senior Consultant bei Saxonia System. Er lebt und arbeitet in Hamburg. Sein Schwerpunkt ist das Entwickeln von Backend-Anwendungen mit.net. Sie erreichen ihn unter Inhalt Das Event-Tracing von Windows für eigenes Logging. Auf Ereignisse lauschen in getrennten Prozessen. Events über Filter sammeln. dnpcode A1407Logging Das sogenannte Logging, also das Mitprotokollieren von bestimmten Daten aus einer Software, während diese läuft, gehört zu den wichtigsten Instrumenten eines Programmierers, um auf den Zustand einer zu entwickelnden Software schließen zu können. Dazu muss der Entwickler an den gewünschten Punkten des Programms entsprechende Aufrufe einbauen. Inzwischen gibt es etliche Frameworks, die ihn dabei unterstützen, unter anderem auch von Microsoft mit der Enterprise Library. Semantic Logging Block In der Enterprise Library 6 hat Microsoft die Bibliothek um einen neuen Block erweitert: um den Semantic Logging Block oder auch kurz SLB. Laut Insung Park und Ricky Buch liegt sein großer Vorteil darin, anwendungs- oder gar unternehmensweit sowohl formal als auch semantisch einheitliche Logging-Informationen zu erzeugen [1]. Diesem Umstand verdankt der SLB das Semantic im Namen. Einheitliche Angaben ließen sich auch mit anderen Logging-Frameworks erzielen. Der Grund, sich dennoch mit dem SLB eingehender zu beschäftigen, liegt darin, dass das Erheben dieser Daten und das Bereitstellen derselben in verschiedenen Prozessen ablaufen können. Das hat den unschätzbaren Vorteil, dass eine einmal erstellte Information auch dann noch gespeichert und ausgewertet wird, wenn der Quellprozess schon längst beendet ist. Event Tracing for Windows Der SLB basiert auf einem Subsystem des Betriebssystems Windows, dem Event Tracing for Windows kurz ETW [2, 3], und verknüpft quasi drei Akteure. Der erste ist der Provider; er erzeugt Logging-Informationen in der Terminologie des ETW Ereignisse (Events) genannt und sendet diese an den ETW. Damit ist sein Part in dem Spiel bereits erschöpft. Der zweite Akteur ist ein Consumer, der die Events vom ETW entgegennimmt und verarbeitet. Als dritter Part steuert ein Controller, ob und wenn ja welche Events an welchen Consumer weitergereicht werden. Der Provider verfügt über eine Ereignisquelle (EventSource), die er beauftragt, Events an den Listing 1 Eine einfache Ereignisquelle für das Windows Event Tracing. /// Einfache EventSource class GrundausstattungEventSource : EventSource /// Trace-Event /// <param name="nachricht">die /// Nachricht des Events</param> public void Trace(string nachricht) WriteEvent(1,nachricht); ETW zu senden. Eine Sitzung (Session) bezeichnet eine Zuordnung eines Providers oder genau genommen seiner Events zu einem oder mehreren Consumern. Eine Session ist temporär; ihre Parameter Name der Ereignisquelle, Filter et cetera lassen sich ändern, ohne dass der Provider-Prozess davon betroffen ist. Das gilt natürlich nur für den Betrieb in einem anderen Prozess (Out-of-Process-Betrieb). Das API für den ETW befindet sich in der Windows-Datei adavapi32.dll. Bislang hat Microsoft den.net-entwicklern den Zugriff auf den ETW verwehrt, doch das hat sich mit.net 4.5 geändert. Nun steht allen Entwicklern die Möglichkeit zur Verfügung, eigene Ereignisquellen zu implementieren und zu betreiben, ohne in die Tiefen des Betriebssystems und der Datei adav api32.dll eintauchen zu müssen. Die Ereignisquelle Um als Provider mit dem ETW kommunizieren zu können, ist eine Ereignisquelle nötig. Erstellen lässt sie sich durch Ableitung von der Klasse

2 EventSource aus dem Namensraum System.Diagnostics. Eine solche Klasse kann mehrere Ereignisse anbieten. Implementiert werden diese als Methode der Ereignisquelle. Listing 1 zeigt ein Beispiel für eine einfache Ereignisquelle. Sie bietet die Methode Trace() an, die eine einfache Nachricht in das Log schreibt. Der Provider ist eine einfache Konsolenanwendung, die in Listing 2 zu sehen ist. Die Methode Main() erstellt zuerst die Ereignisquelle als statische Eigenschaft der Klasse, danach wird ein Listener vom Typ ObservableEventListener aus dem Namensraum Microsoft.Practices.Enterprise Library.SemanticLogging eingerichtet. Seine Aufgabe ist es, auf die Ereignisse zu lauschen und diese an die angeschlossenen Senken weiterzuleiten, also an die Consumer; der Listener übernimmt die Aufgabe des Controllers. Nach Erstellen des Listeners wird diesem mitgeteilt, auf welche Quelle er lauschen soll. Dies geschieht durch den Aufruf der Methode EnableEvents(), der die Instanz der Quelle sowie der Level der eingehenden Events übergeben werden. Der Level ist in diesem Fall nicht an das Ereignis selbst gebunden, sondern wird vom Listener bereitgestellt. Nun fehlt nur noch die Angabe der Ereignissenken, also der Consumer. In diesem Fall sollen die Events nur über die Konsole ausgegeben werden, daher wird im Listener der Consumer LogToCon sole registriert. Ein Aufruf von eventsource. Trace() sendet die Events an den Listener, der diese an den Consumer weiterreicht. Das Ergebnis ist in Abbildung 1 zu sehen. Die Formatierung der Ausgabe ist alles andere als übersichtlich und leider fehlt ein ganz entscheidender Hinweis, nämlich der Name der Quelle. Dieser lässt sich mit einer einfachen, benutzerdefinierten Senke implementieren. Listing 2 Ein einfacher Provider. using Microsoft.Practices.EnterpriseLibrary.SemanticLogging; class Program /// Die EventSource private static GrundausstattungEventSource eventsource get; set; static void Main(string[] args) eventsource = new GrundausstattungEventSource(); using(var listener = new ObservableEventListener()) listener.enableevents(eventsource,eventlevel.informational); listener.logtoconsole(); eventsource.trace("start der Anwendung"); eventsource.trace("die Anwendung arbeitet."); eventsource.trace("anwendung wird beendet."); listener.disableevents(eventsource); eventsource.dispose(); [Abb. 1] Ausgabe der Events über die Konsole. Eine einfache Senke Jede Senke erbt von IObserver<EventEntry>. Der Listener leitet den ursprünglichen Event aus dem ETW als Instanz der Klasse EventEntry aus dem Namensraum Microsoft.Practices.EnterpriseLibrary.SemanticLogging an sie weiter. In der Methode OnNext() der Schnittstelle IObserver<T> erfolgt die Ausgabe des Events. Listing 3 zeigt die Implementierung einer einfachen, benutzerdefinierten Senke. Die Registrierung des Consumers am Listener erfolgt durch eine Erweiterungsmethode für IObserver<EventEntry>. Listing 4 enthält eine Implementierung dieser Methode. Anstelle der Senke Log ToConsole() verwendet Listing 4 LogTo GrundausstattungEventSink(), und schon wirkt die Ausgabe auf der Konsole viel aufgeräumter und ansprechender, wie Abbildung 2 zeigt. Getrennte Prozesse Bislang lief der Listener in ETW-Terminologie der Consumer im gleichen Prozess wie der Provider. Das allerdings sollte in produktiven Anwendungen nicht der Standard sein. Um das Risiko zu minimieren, Informationen beim Absturz einer Anwendung zu verlieren, sollte der Liste

3 Logging von.net-anwendungen mit Windows-Mitteln Listing 3 Eine einfache eigene Ereignissenke. using System; using Microsoft.Practices.EnterpriseLibrary.SemanticLogging; public sealed class GrundausstattungEventSink : IObserver<EventEntry> /// Stellt neue Daten für den Beobachter bereit. /// <param name="value">die aktuellen Benachrichtigungsinformationen.</param> public void OnNext(EventEntry value) if(value!= null) var ursprünglicheschriftfarbe = Console.ForegroundColor; switch(value.schema.level) case EventLevel.Critical: Console.ForegroundColor = ConsoleColor.Red; break; case EventLevel.Error: Console.ForegroundColor = ConsoleColor.Yellow; break; default: Console.ForegroundColor = ConsoleColor.Green; break; Console.WriteLine("Quelle: 0",value.Schema.ProviderName); Console.WriteLine("Event: 0", value.eventid); Console.WriteLine("Level: 0",value.Schema.Level); Console.WriteLine("Datum: 0",value.GetFormattedTimestamp( "dd.mm.yyyy - HH:mm:ss")); Console.WriteLine("Meldung: 0",value.FormattedMessage); Console.ForegroundColor = ursprünglicheschriftfarbe; ner in einem anderen Prozess auf der gleichen Maschine laufen, vorzugsweise in einem NT-Dienst. Darüber hinaus bietet diese Betriebsart die Möglichkeit, Einstellungen der Session zu ändern, ohne den Provider neu starten zu müssen. Für so einen Out-of-Process-Betrieb stellt der Semantic Logging Block eine eigene Implementierung in Semantic Logging-svc.exe zur Verfügung. Der Listener lässt sich damit in einem Konsolenprozess oder in einem NT-Dienstprozess betreiben. Die Konfiguration des Listeners erfolgt über eine XML-Datei. Ihr Name wird in der SemanticLogging-svc.exe.config im Abschnitt appsettings unter dem Schlüssel EtwConfigurationFileName eingetragen. Die eigentliche Konfigurationsdatei ist recht übersichtlich. Im einfachsten Fall geht es darum, dem Listener eine Reihe von Senken bekannt zu machen und jeder Senke eine Event-Quelle zuzuweisen. In Listing 5 ist die Konfiguration für die Ausgabe der Events der Beispielquelle auf der Konsole des Prozesses zu sehen. Starten Sie dazu zuerst die Datei SemanticLogging-svc.exe mit dem Parameter -console und führen Sie danach das Testprogramm Grundausstattung.exe von der Heft-CD dieser dotnetpro aus. Sie sehen dann einerseits das bereits bekannte Bild, nämlich die Ausgabe des Events auf der Konsole von Grundausstattung.exe; mit einer kleinen Verzögerung erscheinen auf der Konsole von SemanticLogging-svc.exe die Events aus Grundausstattung.exe. So viel als Einführung zu den Grundzügen des Logging mit dem Semantic Logging Block und dem ETW. Mehr dazu finden Sie unter den angegebenen Quellen im Internet. /// Benachrichtigt den Beobachter, dass beim Anbieter ein Fehlerzustand aufgetreten ist. /// <param name="error">ein Objekt, das zusätzliche Informationen zum Fehler bereitstellt.</param> public void OnError(Exception error) /// Benachrichtigt den Beobachter, dass der Anbieter aufgehört hat, Pushbenachrichtigungen zu senden. public void OnCompleted() Unter der Haube: ETW und.net Das letzte Beispiel hat die Events sowohl auf der Konsole von Grundausstattung.exe als auch auf der von SemanticLogging-svc. exe ausgegeben. Im ersten Fall übermittelte die Klasse EventSource die Basisklasse von GrundausstattungEventSource das Ereignis über einen internen proprietären Dispatcher-Mechanismus an den zuvor installierten Listener in Grundausstattung.exe. Im zweiten Fall wird das Ereignis über ETW veröffentlicht und auch davon entgegengenommen. Um ein Ereignis entgegennehmen zu können, muss das Windows-Event-Tracking etwas über die Struktur des Events wissen. Um sich zu informieren, benötigt

4 es ein Instrumentation Manifest [4]. Dies ist ein mehr oder weniger komplexes XML-Dokument, das dem ETW über eine Funktion aus der Datei adav api32. dll übergeben wird. Normalerweise hat der Entwickler damit aber nichts zu tun, wenn er seine Klasse von der Klasse EventSource ableitet die Basis Event Source übernimmt das Erstellen und Veröffentlichen des Manifests. Betrachten Sie Ihre eigene EventSource- Klasse fortan nicht nur als Schnittstelle zum ETW, sondern auch als Vorlage, aus der sich per Reflektion ein Manifest erzeugen und als XML-Dokument an ETW weiterreichen lässt. Das Erzeugen des Manifests und seine Weitergabe erfolgt bei jeder Instanzierung des EventSource-Objekts. Um Ressourcen zu sparen, empfiehlt es sich, die eigene EventSource der Anwendung über das Singleton-Muster zur Verfügung zu stellen am besten auch noch mit Lazy- Initialisierung. Leider hat das Erstellen des Manifests seine Tücken. Deshalb soll die Klasse GrundausstattungEventSource ein wenig aufgepeppt werden. Auf der Konsole von Grundausstattung.exe taucht als Quelle der Name der Klasse auf, also GrundausstattungEventSource das ist unter Umständen nicht besonders aussagekräftig. Versehen Sie nun Ihre Klasse mit dem Attribut [EventSource] und geben Sie diesem einen aussagekräftigen Namen mit: [EventSource(Name = "dotnetpro-grundausstattung")] und schon erscheint auf der Konsole von Grundausstattung.exe dieser definierte Name als Quelle des Events. Im Out-of-Process-Listener SemanticLogging-svc.exe tut sich dagegen allerdings nichts. Um das zu ändern, müssen Sie in der Konfigurationsdatei den Namen der Quelle in dotnetpro-grundausstattung ändern und schon funktioniert es wieder. Sie müssen lediglich die geänderte Konfiguration speichern. SemanticLoggingsvc.exe beobachtet die Konfigurationsdatei und lädt sie automatisch nach, wenn.net Änderungen daran festgestellt hat. Das funktioniert in beiden Betriebsmodi als Konsolenanwendung oder als NT-Dienst einwandfrei. Sollte die Konfigurationsdatei Fehler enthalten, so sind in der Ereignisanzeige unter Windows- Protokolle Anwendungen hilfreiche Informationen zu finden. Im nächsten Schritt erhält die Klasse GrundausstattungEventSource eine neue [Abb. 2] Farbiges Logging mit der eigenen Ereignissenke. Listing 4 Damit wird die Senke aktiviert. using System; using Microsoft.Practices.EnterpriseLibrary.SemanticLogging; /// Erweiterung IObservable public static class GrundausstattungEventSinkRegistrierung /// Erweiterungsmethode zur Registrierung eines EventSinks vom Typ /// GrundausstattungEventSink /// <param name="eventstream">der EventStream</param> /// <returns>die SinkSubscription</returns> public static SinkSubscription<GrundausstattungEventSink> LogtoGrundausstattungEventSink(this IObservable<EventEntry> eventstream ) var sink = new GrundausstattungEventSink(); var subscription = eventstream.subscribe(sink); return new SinkSubscription<GrundausstattungEventSink>(subscription,sink); Listing 5 Die Konfiguration von SemanticLogging-svc.exe. <?xml version="1.0"?> <configuration xmlns=" xmlns:xsi=" xsi:schemalocation=" semanticlogging/etw SemanticLogging-svc.xsd"> <traceeventservice/> <sinks> <consolesink name="consoleeventsink"> <sources> <eventsource name="grundausstattungeventsource" level="logalways" /> </sources> <eventtextformatter header="+=========================================+"/> </consolesink> </sinks> </configuration>

5 Logging von.net-anwendungen mit Windows-Mitteln Listing 6 Die neue Methode für die Quelle. /// Einfache EventSource [EventSource(Name="dotnetpro-Grundausstattung")] class GrundausstattungEventSource : EventSource /// Trace-Event /// <param name="nachricht">die Nachricht des Events</param> public void Trace(string nachricht) WriteEvent(1,nachricht); public void Trace(string format, params object[] args) var nachricht = string.format(format, args); Trace(nachricht); Listing 7 Der Einsatz von Keywords. [Event(2, Message = "Exception: [0] 1", Level = EventLevel.Critical, Keywords = Keywords.Exception)] public void Failure(string extype, string exmessage) if (IsEnabled(EventLevel.Critical, Keywords.Exception)) WriteEvent(2, extype, exmessage); Trace()-Methode, die einen Format-String und Parameter entgegennehmen kann, wie es Listing 6 zeigt. Die daraus erzeugte Nachricht soll wieder als Event veröffentlicht werden. Wenn Sie nun Grundausstattung.exe starten, überrascht die Meldung Nicht unterstützter Typ Object[] in Ereignisquelle. Das liegt daran, dass jede Methode in einer von EventSource abgeleiteten Klasse vom Parser, der das Manifest erstellt, als Event betrachtet wird. Die Typen der Parameter einer Methode als Ereignisquelle sind beschränkt und Object[] gehört nicht dazu. Welche Typen zugelassen sind, zählt der Kasten Die Payload auf. Sie können die soeben erstellte Methode mit dem Attribut [NonEvent] kennzeichnen, dann überspringt der Parser die Methode. Die Payload Ein Event, der an den ETW gesendet wird, besteht aus einem Header und der Payload. Die Payload enthält die Nutzdaten des Events. Header und Payload dürfen die Größe von 64 KB nicht übersteigen, ansonsten kommt es beim Bereitstellen des Events an den ETW zu einer Ausnahme. Folgende Typen sind als Payload eines Events zulässig: Boolean Int8 UInt8 Int16 UInt16 Int32 UInt32 Int64 UInt64 Float Double FILETIME UnicodeString Guid Den Event konfigurieren Das Gegenteil von [NonEvent] ist das Attribut [Event]. Es teilt dem Parser Metainformationen über die Methode als Event mit. Der einzige obligatorische Parameter des Attributs ist Id, der die ID des Events angibt. Diese muss in der Event- Quelle eindeutig sein. In der Methode setzen Sie mit Write Event() aus der Basisklasse EventSource den Event an das ETW ab. Achten Sie dabei darauf, dass die Event-ID, die Sie der Methode mitgeben, der Event-ID in der Konfiguration des Attributs entspricht. Der folgende Code zeigt die einfachste derartige Implementierung. [Event(1)] public void Trace(string nachricht) WriteEvent(1, nachricht); Das Attribut [Event] hat aber noch mehr zu bieten. Da es sich dabei um die Mitteilung einer eher banalen Information handelt, wird der Level des Events im Attribut explizit auf EventLevel.Informational gesetzt; dies ist der Standard-Level [1]. Um die Nachricht mit ein paar Informationen über die Umgebung anzureichern, wird die Methode Trace() um die Angabe des Prozess- und des Rechnernamens erweitert. Dies sieht dann so aus: [Event(1, Level = EventLevel.Informational)] public void Trace(string nachricht, string processname, string machine) WriteEvent(1, nachricht, prozess,rechner); Die Angaben nachricht, prozess und rechner werden in die Payload des Events gestellt. Die Payload enthält alle vom Entwickler als Parameter an den Event über

6 [Abb. 3] Manifest einer EventSource. gebenen Werte. Auch hier gelten wieder die erwähnten Einschränkungen, siehe abermals den Kasten Die Payload. Die Nachricht des Events ist allerdings noch leer. Das Attribut bietet die Möglichkeit, in einem Format-String die auszugebende Nachricht zu formatieren. Für diese Zeichenkette gelten die Regeln, die von String.Format() bekannt sind. Leider kann bei der Konfiguration eines Events einiges schiefgehen. Damit sich die Event-Implementierung automatisiert testen lässt, stellt der SLB mit der Klasse EventSourceAnalyzer ein Tool zur Verfügung, um das eigene EventSource-Objekt auf Regelkonformität zu prüfen. Der Aufruf der Prüfung erfolgt über die statische Methode InspectAll(), der eine Instanz des Objekts übergeben wird. Wenn Sie sich das Manifest Ihrer Event- Source betrachten wollen, können Sie das mithilfe der statischen Methode GenerateManifest() aus der Basisklasse Event Source tun. Abbildung 3 zeigt das Manifest der hier beschriebenen Event-Quellen- Klasse. Mehr zum Thema Manifest finden Sie unter [4]. Hört mich jemand? Aber was passiert, wenn für die Event- Quelle keine entsprechende Session ein- Listing 8 Eine Instanz mit dem EventSourceImplementer erzeugen. using System; using EventSourceProxy; namespace Dev class Program static void Main(string[] args) try var eventsource = EventSourceImplementer.GetEventSource <MeineEventSourceSpezialisiert>() as MeineEventSourceSpezialisiert; eventsource.trace("hallo ETW","Dev","Mein Rechner"); eventsource.dispose(); catch (Exception ex) Console.WriteLine(ex.Message); finally Console.WriteLine("Finito"); Console.ReadKey();

7 Logging von.net-anwendungen mit Windows-Mitteln gerichtet wurde, die auf die Ereignisse lauscht? Nichts. Bei Meldungen, die einen kritischen Zustand der Anwendungen signalisieren, ist das allerdings inakzeptabel. Leider kann eine Event-Quelle keine Session erzwingen, aber sie kann prüfen, ob es eine Session gibt, die für sie zuständig ist, und gegebenenfalls darauf reagieren. Dazu stellt die Basisklasse Event Source die Methode IsEnabled() mit zwei Überschreibungen zur Verfügung. Beide prüfen, ob für das EventSource-Objekt eine Session zur Verfügung steht. Zwar ist der ETW ein ziemliches Arbeitstier auf dem System des Autors wurden Events in 58 Millisekunden an den ETW gesendet und in eine Datenbank geschrieben, dennoch, oder gerade deshalb, sollten Sie nicht unnötig Ressourcen in Anspruch nehmen. Daher empfiehlt es sich auch bei unkritischen Meldungen, abzufragen, ob es eine Session dazu gibt, und den Event nur dann zu veröffentlichen, wenn dies der Fall ist. Wider die Informationsflut Damit wertvolle Informationen nicht im Wust der weniger relevanten untergehen, Listing 9 lässt sich ein Event mit einem Filter versehen. Filter lassen sich grob in zwei Kategorien einteilen: solche, die bereits im ETW dafür sorgen, dass ein Event nicht an den Consumer weitergeleitet wird, und solche, deren Auswertung der Consumer übernimmt. Zur ersten Kategorie gehört der Filter Keywords. Schlüsselbegriffe werden in der EventSource-Klasse als eingebettete Klasse implementiert, die den Namen Keywords tragen muss. Innerhalb der Klasse werden die Schlüsselbegriffe dann als Konstanten vom Typ EventKeywords aus dem Namensraum System.Diagnostics. Tracing definiert. Die Werte der Schlüsselbegriffe müssen einer Zweierpotenz entsprechen also 1, 2, 4, 8, 16, 32 und so weiter. Dadurch lassen sich bis zu 64 Werte für eine EventSource-Klasse implementieren. Die Klasse kann mit einer Überschreibung der Methode IsEnabled() aus der Basisklasse abfragen, ob es für die Event Source einen Consumer gibt, der auf ein Event mit dem angegebenen Level und dem angegebenen Schlüsselwert wartet, wie es Listing 7 zeigt. Die Schlüsselwerte eines Events werden wie oben schon über das Attribut [Event] bekannt gemacht. Es besteht natürlich die Möglichkeit, mehrere Werte mit dem Oder-Operator zu verknüpfen. Die Filter OpCodes und Tasks sind nur durch den Consumer auszuwerten. Nähere Informationen zu den Keywords, Tasks und OpCodes finden sich unter [1] und [4]. Eine für alle Der Name der Event-Quelle, den das gleichnamige Attribut angibt, bezeichnet semantisch die Anwendung, die das Ereignis abgesetzt hat. Soll nun eine EventSource-Klasse unternehmensweit in verschiedenen Anwendungen eingesetzt werden, stehen Sie vor dem Problem, dass alle Events aller Anwendungen als Quelle immer die gleiche EventSource ausweisen. Es müsste also die Möglichkeit geben, je nach Anwendung den Namen der Event- Quelle zu spezialisieren. Leider lässt sich der Name der Quelle zur Laufzeit nicht ändern. Auch eine Ableitung von einer benutzerdefinierten, abstrakten EventSource-Klasse mit der Spezifizierung des Namens im [EventSource]- Eine EventSource-Instanz mit dem Template generieren. using System; using EventSourceProxy; namespace EventSources [EventSource(Name = "LoggingEventSourceTemplate")] public abstract class LoggingEventSourceTemplate<TEventSource> : EventSource where TEventSource :LoggingEventSourceTemplate<TEventSource>, new() /// Standardkonstruktor protected LoggingEventSourceTemplate() : base(true) /// Singleton-Instanz [NonSerialized] private static readonly Lazy<TEventSource> instance = new Lazy<TEventSource>(eventSourceFactory); /// Fabrikmethode zur Erstellung der EventSource /// <returns>die EventSource</returns> private static TEventSource eventsourcefactory() TEventSource eventsource = null; try eventsource = EventSourceImplementer. GetEventSource<TEventSource>() as TEventSource; catch (Exception ex) LoggingFailure.Log.Failure(ex); if(eventsource == null) LoggingFailure.Log.Failure( "Die EventSource konnte nicht erstellt werden."); return eventsource; /// Zugriff auf das Singleton public static TEventSource Log get return instance.value;

8 Attribut führt nicht zum Ziel in diesem Fall weist das Manifest keinerlei Events auf. Der Versuch, über die EventSource in den ETW zu schreiben, wird mit einer Ausnahme vom Typ Index OutOfRange quittiert. Die Überprüfung des Event Source- Objekts mit EventSourceAnalyzer. InspectAll() ergibt, dass keine Methode mit dem Attribut [Event] ausgestattet wurde. Nach dem Stand der Dinge bleibt nun nichts anderes übrig, als für jede Anwendung eine eigene EventSource-Klasse von EventSource abzuleiten. Zum Glück gibt es Abhilfe in Gestalt eines NuGet-Pakets namens EventSource Proxy von Jon Wagner [5]. Neben etlichen Merkmalen, die das Arbeiten mit Event Source-Objekten erleichtern, stellt diese Erweiterung eine generische Methode Get EventSource() in EventSourceImplementer zur Verfügung, die aus einer spezialisierten Event-Quelle ein brauchbares regelkonformes EventSource-Objekt erzeugt. In Listing 8 sehen Sie den Einsatz des EventSourceImplementer. Die Klasse MeineEventSource ist von EventSource aus System.Diagnostics.Tracing abgeleitet. Der Name der Event-Quelle lautet dotnetpro. Sie bildet die abstrakte Basisklasse für MeineEventSourceSpezialisiert, deren Name dotnetpro-spezial ist (siehe auch Listing 10). Eine direkte Verwendung von MeineEventSource führt zu den bereits beschriebenen Problemen. Überlassen Sie allerdings die Instanzierung des Event Source-Objekts der Methode EventSource Implementer.GetEventSource(), stellt sich das gewünschte Ergebnis ein. Auf der CD zum Heft befindet sich in den Quellcodes des Projekts EventSources ein generisches Muster für die Implementierung einer EventSource-Klasse unter LoggingEventSourceProxy. Listing 9 zeigt den Kern der Implementierung zum Erzeugen einer Singleton-Instanz der Event-Quelle. Natürlich müssen in dieser Vorlage noch die einzelnen Events implementiert werden. Das Erstellen einer EventSource-Klasse, deren Name der Name der Anwendung ist, ist dann nur noch eine einfache Ableitung, wie Listing 10 zeigt. Die so erzeugte Instanz lässt sich wie alle EventSource-Instanzen mit EventSourceAnalyzer.Inspect All() prüfen. Das Erzeugen des Manifests via Event Source.GenerateManifest() funktioniert ebenfalls, vorausgesetzt der zweite Parameter gibt das Verzeichnis der Anwendung an. Ein Blick in das Manifest bestätigt, dass eine Event-Quelle für den Provider dotnetpro-spezial erzeugt wurde. Auf der anderen Seite Der SLB stellt Senken für das Speichern der Events in einer Datenbank, einer Datei, einer Azure-Table oder zur Anzeige auf der Konsole zur Verfügung. Benutzerdefinierte Senken können wie in Listing 3 oder unter [1] beschrieben implementiert werden. Für die hauseigenen Senken bringt der SLB zur Konfiguration von SemanticLogging-svc.exe eigene Tags mit. Benutzerdefinierte Senken werden mit dem Tag customsink versehen. Listing 11 zeigt, wie die in Listing 3 implementierte Senke für diesen Zweck konfiguriert wird. Fazit Der SLB und EventSource eröffnen den Weg in das Logging über das Event Tracing for Windows. Gäbe es nicht das NuGet-Paket EventSourceProxy, wäre ein Listing 10 Eine spezialisierte Event-Quelle. using EventSources; namespace DotNetPro.Spezial [EventSource(Name = "dotnetpro-spezial")] public class LocalEventSource : LoggingEventSourceTemplate<LocalEventSource> Listing 11 anwendungs- und unternehmensweiter Einsatz fraglich. So aber füllt dieses Addon eine konzeptionelle Lücke und macht ETW unter.net zu einer attraktiven Alternative für das Logging. Dennoch sind die verfügbaren Klassen und Tools erst der Anfang. Vor allem der Parser, der aus einer benutzerdefinierten EventSource-Klasse ein Manifest erzeugt, bedarf noch der Überarbeitung. [jp] [1] Dr. Insung Park und Ricky Buch, Verbessertes Debugging und Leistungsoptimierung mit ETW, [2] MSDN, ETW-Ablaufverfolgung, [3] MSDN, Logging what you mean: Using the Semantic Logging Application Block, [4] MSDN, Writing an Instrumentation Manifest, [5] Jon Wagner, EventSourceProxy, Konfiguration des benutzerdefinierten Consumers für einen Out-of-Process-Einsatz. <?xml version="1.0"?> <configuration xmlns=" xmlns:xsi=" xsi:schemalocation=" SemanticLogging-svc.xsd"> <traceeventservice/> <sinks> <customsink name="beautifulconsolesink" type="eventsinks.consoleeventsink, EventSinks"> <sources> <eventsource name="dotnetpro-spezial"/> </sources> </customsink> </sinks> </configuration>

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Exception Handling, Tracing und Logging

Exception Handling, Tracing und Logging Exception Handling, Tracing und Logging Proseminar Objektorientiertes Programmieren mit.net und C# Tomas Ladek Institut für Informatik Software & Systems Engineering Agenda Exceptions Allgemeines Implementierung

Mehr

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Nachricht der Kundenbetreuung

Nachricht der Kundenbetreuung Cisco WebEx: Service-Pack vom [[DATE]] für [[WEBEXURL]] Sehr geehrter Cisco WebEx-Kunde, Cisco WebEx sendet diese Mitteilung an wichtige Geschäftskontakte unter https://[[webexurl]]. Ab Samstag, 1. November

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte: Installation des GeoShop Redirector für IIS (Stand 24.8.2007) ============================================================= 0 Überblick ----------- Die Installation des GeoShop Redirector für IIS (Internet

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Inkrementelles Backup

Inkrementelles Backup Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen. Millennium SMS Service Schnellübersicht Seite 1 von 6 1. Tägliche Arbeiten mit der SMS Bestätigung Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Mehr

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Bedienungsanleitung für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof Matthias Haasler Version 0.4 Webadministrator, email: webadmin@rundkirche.de Inhaltsverzeichnis 1 Einführung

Mehr

FritzCall.CoCPit Schnelleinrichtung

FritzCall.CoCPit Schnelleinrichtung FritzCall.CoCPit Schnelleinrichtung Willkommen bei der Ersteinrichtung von FritzCall.CoCPit Damit Sie unseren FritzCall-Dienst nutzen können, müssen Sie sich die aktuelle Version unserer FritzCall.CoCPit-App

Mehr

FlowFact Alle Versionen

FlowFact Alle Versionen Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für

Mehr

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC.

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Anleitung Konverter Letzte Aktualisierung dieses Dokumentes: 14.11.2013 Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Wichtiger Hinweis: Der Konverter

Mehr

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003 Page 1 of 8 SMTP Konfiguration von Exchange 2003 Kategorie : Exchange Server 2003 Veröffentlicht von webmaster am 25.02.2005 SMTP steht für Simple Mail Transport Protocol, welches ein Protokoll ist, womit

Mehr

2. Word-Dokumente verwalten

2. Word-Dokumente verwalten 2. Word-Dokumente verwalten In dieser Lektion lernen Sie... Word-Dokumente speichern und öffnen Neue Dokumente erstellen Dateiformate Was Sie für diese Lektion wissen sollten: Die Arbeitsumgebung von Word

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Handbuch PCI Treiber-Installation

Handbuch PCI Treiber-Installation Handbuch PCI Treiber-Installation W&T Release 1.0, September 2003 09/2003 by Wiesemann & Theis GmbH Microsoft und Windows sind eingetragene Warenzeichen der Microsoft Corporation Irrtum und Änderung vorbehalten:

Mehr

VIDA ADMIN KURZANLEITUNG

VIDA ADMIN KURZANLEITUNG INHALT 1 VIDA ADMIN... 3 1.1 Checkliste... 3 1.2 Benutzer hinzufügen... 3 1.3 VIDA All-in-one registrieren... 4 1.4 Abonnement aktivieren und Benutzer und Computer an ein Abonnement knüpfen... 5 1.5 Benutzername

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Installationsanleitungen

Installationsanleitungen Installationsanleitungen INPA SGBD-Entwicklungsumgebung (EDIABAS) INPA für Entwickler Bevor Sie EDIABAS / INPA installieren können, müssen Sie sich für den Ordner sgref auf smuc0900 freischalten lassen.

Mehr

icloud nicht neu, aber doch irgendwie anders

icloud nicht neu, aber doch irgendwie anders Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Allgemeines Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Stand 21.11.2014 Die Yeastar MyPBX Telefonanlagen unterstützen die automatische Konfiguration der tiptel 3010, tiptel 3020 und tiptel 3030

Mehr

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen Anwendungshinweis Nr. 12 Produkt: Schlüsselworte: Problem: Softing OPC Easy Connect OPC Server, Redundanz Wie konfiguriere ich redundante Lösung: Ausgangssituation: Eine OPC Client-Anwendung ist mit mehreren

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98 OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98 Neue Version: Outlook-Termine, Kontakte, Mails usw. ohne Exchange-Server auf mehreren Rechnern nutzen! Mit der neuesten Generation intelligenter

Mehr

FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox

FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox Bitte beachten: Der im folgenden beschriebene Provider "www.cwcity.de" dient lediglich als Beispiel. Cwcity.de blendet recht häufig

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein Einrichtung von orgamax-mobil Um die App orgamax Heute auf Ihrem Smartphone nutzen zu können, ist eine einmalige Einrichtung auf Ihrem orgamax Rechner (bei Einzelplatz) oder Ihrem orgamax Server (Mehrplatz)

Mehr

Zählen von Objekten einer bestimmten Klasse

Zählen von Objekten einer bestimmten Klasse Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

etermin Einbindung in Outlook

etermin Einbindung in Outlook etermin Einbindung in Outlook 1. Einführung Über etermin gebuchte Termine können bei Bedarf auch mit externen Terminkalendern, wie zum Beispiel Outlook, ical oder Google synchronisiert werden. Dieses Dokument

Mehr

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1 CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7

Mehr

Für die Einrichtung des elektronischen Postfachs melden Sie sich wie gewohnt in unserem Online-Banking auf www.sparkasse-unna.de an.

Für die Einrichtung des elektronischen Postfachs melden Sie sich wie gewohnt in unserem Online-Banking auf www.sparkasse-unna.de an. Einrichten des elektronischen Postfachs Für die Einrichtung des elektronischen Postfachs melden Sie sich wie gewohnt in unserem Online-Banking auf www.sparkasse-unna.de an. 1. Wechseln Sie über Service

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver Eine Firewall für Lexware professional oder premium konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Die Firewall von Windows 7 und Windows 2008 Server... 2 4. Die Firewall

Mehr

Log xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade

Log xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade HACK #76 Hack APIs mit dem Façade-Muster vereinfachen Durch die Verwendung des Façade-Entwurfsmusters können Sie die anderen Programmierern zugängliche API vereinfachen. #76 Dies ist ein Muster, von dem

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung Diese Anleitung hilft Ihnen, das nachfolgend geschilderte Problem zu beheben.

Mehr

.NET Code schützen. Projekt.NET. Version 1.0

.NET Code schützen. Projekt.NET. Version 1.0 .NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll

Mehr

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories ) NetWorker 7.5.0 - Allgemein Tip 8, Seite 1/7 So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories ) Bisher war es der NetWorker Client Software

Mehr

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser Seite 1 von 14 Cookie-Einstellungen verschiedener Browser Cookie-Einstellungen verschiedener Browser, 7. Dezember 2015 Inhaltsverzeichnis 1.Aktivierung von Cookies... 3 2.Cookies... 3 2.1.Wofu r braucht

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Aufrufen des Konfigurators über eine ISDN- Verbindung zur T-Eumex 628. Eine neue ISDN-Verbindung unter Windows XP einrichten

Aufrufen des Konfigurators über eine ISDN- Verbindung zur T-Eumex 628. Eine neue ISDN-Verbindung unter Windows XP einrichten Aufrufen des Konfigurators über eine ISDN- Verbindung zur T-Eumex 628 Alternativ zur Verbindung über USB können Sie den Konfigurator der T -Eumex 628 auch über eine ISDN-Verbindung aufrufen. Sie benötigen

Mehr

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch:

O UTLOOK EDITION. Was ist die Outlook Edition? Installieren der Outlook Edition. Siehe auch: O UTLOOK EDITION Was ist die Outlook Edition? Outlook Edition integriert Microsoft Outlook E-Mail in Salesforce. Die Outlook Edition fügt neue Schaltflächen und Optionen zur Outlook- Benutzeroberfläche

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein Einleitung Memeo Instant Backup ist eine einfache Backup-Lösung für eine komplexe digitale Welt. Durch automatisch und fortlaufende Sicherung Ihrer wertvollen Dateien auf Ihrem Laufwerk C:, schützt Memeo

Mehr

Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2

Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2 Anleitung zur Konfiguration eines NO-IP DynDNS-Accounts mit der TOOLBOXflex-3.2 DynDNS-Accounts sollten in regelmäßigen Abständen mit der vom Internet-Provider vergebenen IP- Adresse (z.b. 215.613.123.456)

Mehr

FrogSure Installation und Konfiguration

FrogSure Installation und Konfiguration FrogSure Installation und Konfiguration 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis...1 2 Installation...1 2.1 Installation beginnen...2 2.2 Lizenzbedingungen...3 2.3 Installationsordner auswählen...4 2.4

Mehr

Abwesenheitsnotiz im Exchangeserver 2010

Abwesenheitsnotiz im Exchangeserver 2010 Abwesenheitsnotiz im Exchangeserver 2010 Richten sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren sie, dass nur Absender eine Nachricht bekommen, die ihnen direkt eine Mail gesendet haben.

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Einrichtung Email-Account

Einrichtung Email-Account Einrichtung Email-Account Stand: 25. März 2004 Software Company www.business.co.at, office@business.co.at Software Company - 25.03.2004 1 Inhaltsverzeichnis EINRICHTUNG OUTLOOK EXPRESS...3 WEBMAIL & VACATION...8

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

Mediumwechsel - VR-NetWorld Software

Mediumwechsel - VR-NetWorld Software Mediumwechsel - VR-NetWorld Software Die personalisierte VR-NetWorld-Card wird mit einem festen Laufzeitende ausgeliefert. Am Ende der Laufzeit müssen Sie die bestehende VR-NetWorld-Card gegen eine neue

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen

Mehr

INSTALLATION VON INSTANTRAILS 1.7

INSTALLATION VON INSTANTRAILS 1.7 INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis

Mehr

Arbeiten mit dem Outlook Add-In

Arbeiten mit dem Outlook Add-In Arbeiten mit dem Outlook Add-In Das Outlook Add-In ermöglicht Ihnen das Speichern von Emails im Aktenlebenslauf einer Akte. Außerdem können Sie Namen direkt aus BS in Ihre Outlook-Kontakte übernehmen sowie

Mehr

DynDNS Router Betrieb

DynDNS Router Betrieb 1. Einleitung Die in dieser Information beschriebene Methode ermöglicht es, mit beliebige Objekte zentral über das Internet zu überwachen. Es ist dabei auf Seite des zu überwachenden Objektes kein PC und/oder

Mehr

ARAkoll 2013 Dokumentation. Datum: 21.11.2012

ARAkoll 2013 Dokumentation. Datum: 21.11.2012 ARAkoll 2013 Dokumentation Datum: 21.11.2012 INHALT Allgemeines... 3 Funktionsübersicht... 3 Allgemeine Funktionen... 3 ARAmatic Symbolleiste... 3 Monatsprotokoll erzeugen... 4 Jahresprotokoll erzeugen

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Local Control Network Technische Dokumentation

Local Control Network Technische Dokumentation Steuerung von Hifi-Anlagen mit der LCN-GVS Häufig wird der Wunsch geäußert, eine Hi-Fi-Anlage in die Steuerung der LCN-GVS einzubinden. Auch das ist realisierbar. Für die hier gezeigte Lösung müssen wenige

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

SEMINAR Modifikation für die Nutzung des Community Builders

SEMINAR Modifikation für die Nutzung des Community Builders 20.04.2010 SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung ecktion SEMINAR Modifikation für die Nutzung des Community Builders Step by Step Anleitung Bevor Sie loslegen

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Anleitung für Autoren auf sv-bofsheim.de

Anleitung für Autoren auf sv-bofsheim.de Anleitung für Autoren auf sv-bofsheim.de http://www.sv-bofsheim.de 1 Registrieren als Benutzer sv-bofsheim.de basiert auf der Software Wordpress, die mit einer Erweiterung für ein Forum ausgestattet wurde.

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Eine Einführung in die Installation und Nutzung von cygwin

Eine Einführung in die Installation und Nutzung von cygwin Eine Einführung in die Installation und Nutzung von cygwin 1 1. Woher bekomme ich cygwin? Cygwin ist im Internet auf http://www.cygwin.com/ zu finden. Dort lädt man sich die setup.exe in ein beliebiges

Mehr

Stepperfocuser 2.0 mit Bootloader

Stepperfocuser 2.0 mit Bootloader Stepperfocuser 2.0 mit Bootloader Info Für den Stepperfocuser 2.0 gibt es einen Bootloader. Dieser ermöglicht es, die Firmware zu aktualisieren ohne dass man ein spezielles Programmiergerät benötigt. Die

Mehr

FORUM HANDREICHUNG (STAND: AUGUST 2013)

FORUM HANDREICHUNG (STAND: AUGUST 2013) FORUM HANDREICHUNG (STAND: AUGUST 2013) Seite 2, Forum Inhalt Ein Forum anlegen... 3 Forumstypen... 4 Beiträge im Forum schreiben... 5 Beiträge im Forum beantworten... 6 Besondere Rechte der Leitung...

Mehr

License Management 1.0 - SDK

License Management 1.0 - SDK License Management 1.0 - SDK Inhalt Allgemeine Beschreibung... 2 Vorbereitungen... 2 Download aller nötigen Dateien und Dokumentationen... 2 Beantragung eines ValidationKeys... 2 Beantantragung einer Development-Lizenz...

Mehr

Emaileinrichtung in den kaufmännischen Programmen der WISO Reihe

Emaileinrichtung in den kaufmännischen Programmen der WISO Reihe Emaileinrichtung in den kaufmännischen Programmen der WISO Reihe Voraussetzung für die Einrichtung eine Emailanbindung in den kaufmännischen Produkten der WISO Reihe ist ein auf dem System als Standardmailclient

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

Mehr

Erstellen eines Formulars

Erstellen eines Formulars Seite 1 von 5 Word > Erstellen bestimmter Dokumente > Formen Erstellen von Formularen, die in Word ausgefüllt werden können Basierend auf einer Vorlage können Sie dieser Inhaltssteuerelemente und Hinweistext

Mehr

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten Anleitung zum Login über die Mediteam- Homepage und zur Pflege von Praxisnachrichten Stand: 18.Dezember 2013 1. Was ist der Mediteam-Login? Alle Mediteam-Mitglieder können kostenfrei einen Login beantragen.

Mehr

HowTo: Ereigniseinrichtung

HowTo: Ereigniseinrichtung HowTo: Ereigniseinrichtung [Szenario] Sobald die Kamera eine Bewegung erkennt soll ein Videoclip auf einem FTP Server gespeichert werden und eine Email Benachrichtigung mit Snapshots verschickt werden.

Mehr

Handbuch für Redakteure

Handbuch für Redakteure Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Grunddaten ändern... 5 Weitere Artikeleigenschaften... 5 Der WYSIWYG-Editor... 6

Mehr