C++ Ereignislog-Anwendung schreiben



  • Hallo,
    ich hatte schon gegoogelt und alles, aber bis jetzt nicht wirklich eine befriedigende lösung gefunden und zwar folgendes Problem:

    ich habe eine Anwendung ...
    diese soll im Fehlerfall in das Windows Ereignislog für Anwendungen, einen kleinen Fehler-Text schreiben...
    für die C++ Anwendung unter Windows habe ich die WinApi benutzt...
    eine .NET lösung möchte ich nicht nutzen!

    nun hatte ich etwas recherchiert und bin darauf gestoßen das ich erst in der registry einen eintrag vornehmen muss/kann der dann über einen "Message-Container", gefüllt oder geschrieben wird...

    ich wollte fragen ob es da evt. auch andere "simplere" Alternativen gibt...
    da ich eigentlich nur ca 2 Zeilen Text in das Ereignislog schreiben will scheint mir so eine Lösung etwas überdimensioniert... und ich wollte mir die arbeit sparen 😃 ....

    da ich normalerweise nicht unter windows c++ Anwendungen schreibe sondern unter linux / bzw. bis jetzt geschrieben habe hatte ich bis jetzt leider nicht solche probleme...!

    wie löst ihr so etwas unter windows? vll auch ein kleinen beispiel-code wäre super!

    mfg



  • Eventuell hilft dir folgendes weiter: Event Logging, Part I: XEventLog - Basic NT Event Logging



  • ja das ist nicht schlecht ist mir eigentlich aber noch etwas zu umständlich...
    gibt es da nix eleganteres... 🙂

    wenn ich die XEventLogging-Klassen nutze kann ich auch gleich die EventLog-Klassen oder das ErrorReporting nutzen... 🙂

    ich dachte nur vll gibt es was einfacheres wo ich nicht erst nen Message Container bauen und nen Regstry-Eintrag machen muss...
    weil mir geht es nur um 2 Zeilen ... (also Start und Ende, ganz konkret)...
    es dreht sich auch nur um ein lokales Win-Ereignislog...

    meinst du/ihr das es da überhaupt was noch kürzeres/simpleres/eleganteres gibt?



  • Du kannst mal das Commandline-Utility "eventcreate" ausprobieren...
    http://technet.microsoft.com/en-us/library/bb490899.aspx

    ...und dann gucken wie die mit diesem Tool geschriebenen Einträge aussehen. Also z.B. wie die von "eventcreate" erzeugten Sourcen aussehen, welche Message-DLL referenziert wird etc.
    Und das dann in deinem C++ Programm nachbilden.

    GastNeuCPP schrieb:

    weil mir geht es nur um 2 Zeilen ... (also Start und Ende, ganz konkret)...
    es dreht sich auch nur um ein lokales Win-Ereignislog...

    meinst du/ihr das es da überhaupt was noch kürzeres/simpleres/eleganteres gibt?

    Nö, das Windows Event-Log ist weder einfach noch besonders elegant in der Verwendung. Eher das Gegenteil. Ist halt so.
    Du kannst ja ein eigenes Logfile schreiben wenn du was einfacheres willst. Und was eleganter ist ist wohl Ansichtssache.



  • ja ich schau mir das mal an... vielen dank für den ansatz 🙂 ...!
    ich bin eh fast soweit das ichs mir schnell selbst zusammenbastel... 🙂

    hustbaer schrieb:

    Nö, das Windows Event-Log ist weder einfach noch besonders elegant in der Verwendung. Eher das Gegenteil. Ist halt so.
    Du kannst ja ein eigenes Logfile schreiben wenn du was einfacheres willst. Und was eleganter ist ist wohl Ansichtssache.

    ja ich habe im moment eine lösung mit einem "eigenen Log", doch ich benötige die Einträge ins Ereignislog von Windows der Anwendung, da ich keine lust habe jeden darauf hinzuweisen wo sich jedes einzelne log befindet wollte ich gezielt dieses nutzen 😉 ...

    jop da hast du recht in einem gewissen spielraum ist elegant ansichtssache... 🙂
    jedoch meiner meinung nach nur in einem gewissen spielraum halt 😃 ...

    vielen dank für die hilfen... 🙂
    gruß



  • eventcreate [/s Computer [/u Domain\User [/p Password]] {[/l {APPLICATION|SYSTEM}]|[/so SrcName]} /t {ERROR|WARNING|INFORMATION|SUCCESSAUDIT|FAILUREAUDIT} /id EventID /d Description
    

    das ist perfekt ! ...

    Problem gelöst 👍
    vielen dank an alle 🙂
    schönen Tag noch 🙂
    grüße


Anmelden zum Antworten