Logfile



  • Ich kann doch nun einfach

    out << daten.get_day(); 
    // usw.
    

    machen, oder irre ich mich da?
    [offenbar schon, denn meinem Compiler gefällt das nicht allzu sehr]



  • wenn du noch die ganzen get-Methoden der Klasse als const definierst, sollte es eigentlich funktionieren.
    (und das nächste Mal liest du auch die Erklärungen des Compilers, was an deinem Code nicht in Ordnung ist)



  • Vielen Dank für deine Geduld!
    Das mach ich jeweils schon, aber ich verstehe die Meldung nicht immer.

    Ich hätte noch eine Frage, aus reiner Neugier:
    Wie sähe es in umgekehrter Richtung aus? Also dass man eine Fehlermeldung in ein File speichert?
    Ich meine, klar, man könnte so beginnen:

    void
    logfile::log(std::string message_)
    

    und schon hat man die Mitteilung.
    Für die Zeit gibt es doch Methoden aus der Bibliothek, oder?
    Aber wie sähe eine mögliche Speicherung in einem file aus?

    Liebe Grüsse und eine gute Nacht,
    Sonja



  • SonjaZ schrieb:

    Vielen Dank für deine Geduld!
    Das mach ich jeweils schon, aber ich verstehe die Meldung nicht immer.

    Dann solltest du wenigstens dazuschreiben, was der Compiler gesagt hat (Aussagen wie "meinem Compiler gefällt das nicht allzu sehr" sind zu allgemein für eine genauere Analyse)

    Ich hätte noch eine Frage, aus reiner Neugier:
    Wie sähe es in umgekehrter Richtung aus? Also dass man eine Fehlermeldung in ein File speichert?
    Ich meine, klar, man könnte so beginnen:

    void
    logfile::log(std::string message_)
    

    und schon hat man die Mitteilung.
    Für die Zeit gibt es doch Methoden aus der Bibliothek, oder?
    Aber wie sähe eine mögliche Speicherung in einem file aus?

    Für die aktuelle Uhrzeit gibt es die Funktionen aus der <ctime> - hier wäre eine Kombination aus time() und localtime() der richtige Ansatz. Anschließend kannst du die Inhalte des struct tm zusammen mit der Meldung in ein record-Objekt packen und über den oben definierten Ausgabe-Operator in die Datei schreiben.



  • Wäre glaube ich alles einfacher würdest du XML als Format für deinen Log nehmen.

    < tag name="log vom xx.xx.xx" größe="xxx" >
        < event zeit="11:29:30" >
            Methangas entweicht durch Achterdeck!
        < /event >
    < /tag >
    


  • AP0LL0 schrieb:

    Wäre glaube ich alles einfacher würdest du XML als Format für deinen Log nehmen.

    < tag name="log vom xx.xx.xx" größe="xxx" >
        < event zeit="11:29:30" >
            Methangas entweicht durch Achterdeck!
        < /event >
    < /tag >
    

    lol 👍 🤡



  • Eigentlich wollt' ich sowas hier machen:

    SYSTEMTIME time;
    	GetSystemTime(& time);
    
    	strcpy(message_, sprintf(time.wDay));
    

    ..doch da gibts ein Problem: message_ ist ein String, nicht char. Gibts da analoges für Strings, oder soll ich message_ zuerst in ein char-Array umwandlen?



  • Du könntest wieder einen Stringstream verwenden, um die Zeit an die auszugebende Nachricht anzuhängen. Aber eigentlich reicht es aus, die einzelnen Bestandteile der Systemzeit in die Logdatei zu schreiben (in dem Format, das du auch bei der Weiterverarbeitung erwartest).



  • ok, ich habe nun alle Daten in einem record-Objekt. Aber mit welchem Befehl kann ich die Ausgabe in einem file speichern?
    [um es zu öffnen, benutzen wir ja: _file.open(...)]



  • Wenn du ihn richtig geschrieben hast, kannst du dafür den Ausgabe-Operator verwenden, den du bereits für die Ausgabe der Log-Einträge auf dem Bildschirm genutzt hast.



  • Besten Dank für Deine Hilfe!
    Hat super geklappt 🙂


Anmelden zum Antworten