Logger Funktionen



  • Hi,

    ich bin mir gerade einen eigenen Logger am basteln, den ich immer wieder in anderen Projekten benutzen kann. Nun habe ich die eigentlich Funktion des Loggers fertig. Aber ich frage mich jetzt.. was könnte ein Logger noch sinnvolles können außer das loggen an sich?

    Der Logger ist sehr simpel gestrickt und packt nur Meldungen in eine Textdatei, aber gibt es vielleicht noch wichtige Funktionen die ein Logger erfüllen soll? Ich kann momentan Debug, Info, Warn und Error Messages loggen. Zusätzlich habe ich eine Funktion eingebaut mit der man selber logfiles defnieren kann, um eigene Logs erstellen zu können. Auch kann man die Position der Logfiles selber festlegen.

    Jemand eine Idee?



  • Hm.
    Haste dir schon die zillionen Libraries für Logging angesehen? Einerseits, falls du nur eine gute Implementierung zum Verwenden haben willst, wäre es vermutlich besser eine fertige zu nehmen.
    Wenns dir um die Übung geht wirst du dort aber auch viele interessante Features finden die du nachbauen könntest.



  • Hab mir schon viele andere Libs angeguckt, aber einige verstehe ich nicht, weil die so dermaßen überladen sind mit Code. Verstehe manchmal nicht wieso man soviel Code schreibt. Ist es nicht so, dass weniger mehr ist? Ich hab halt einen Logger gebaut den ich selber verstehe und der easy zu benutzen ist. Er macht was er soll



  • Bennisen schrieb:

    Hab mir schon viele andere Libs angeguckt, aber einige verstehe ich nicht, weil die so dermaßen überladen sind mit Code.

    Du sollst ja auch die Doku lesen und nicht den Code.

    Bennisen schrieb:

    Verstehe manchmal nicht wieso man soviel Code schreibt.

    Ist oft ne QoI Frage. Ne Logging Implementierung mit bestimmten Eigenschaften wie
    - flexibel
    - schnell
    - angenehm zu verwenden
    - sehr robust implementiert
    ...
    ist halt einfach nicht in ein paar zig oder hundert Zeilen Code zu schreiben.

    Bennisen schrieb:

    Ist es nicht so, dass weniger mehr ist?

    Kommt drauf an was man braucht. Wenn man wenig braucht, dann ist eine "weniger" Lösung die nur genau das macht was man braucht "mehr", als eine "mehr" Lösung die alles unnötig verkompliziert.
    Der Knackpunkt ist aber das "unnötig".
    Und davon abgesehen... wenn man die Wahl hat etwas fertiges, ausgereiftes, gut getestetes zu verwenden, dann darf das auch gerne mal ein paar "nice to have" Features haben, die man auf Grund des schlechten Kosten/Nutzen Verhältnisses nie umsetzen würde wenn man den ganzen Code selbst schreiben würde.

    Bennisen schrieb:

    Ich hab halt einen Logger gebaut den ich selber verstehe und der easy zu benutzen ist. Er macht was er soll

    Ist ja OK. Nur ... was willst du dann?
    Dein 2. Beitrag liest sich irgendwie so nach "ich brauch nicht mehr, ey" - und das passt dann nicht wirklich zu der Frage was du noch alles mehr machen könntest.



  • Zusätzlich zu dem was hustbaer schrieb noch die Anmerkung, dass die Aufgabe einer Loggers das loggen von Informationen ist. Nicht mehr nicht weniger. Insofern verstehe ich deine Frage auch nicht.

    Wenn der Logger nur für dich ist und nie jemand in den weiten des Internets diesen benutzen wird, sollte dein Textlogging (sofern robust) ausreichen.

    Wie angesprochen ist es halt immer vom Einsatzzweck abhängig welche Funktionen der Logger benötigt.

    Meiner zum Beispiel (den ich privat verwende) ist so aufgebaut, das er per DI erweitert werden kann. - Als Module besitzt er bisher ein Textfile-Logging, ein Windows Eventlog-Logging und ein Xml-Log Logging (das aber nur beiläufig als Information).

    In der Regel hast du jedoch nur eine Log-Senke in die du schreibst. In deinem Fall eben das Textfile.



  • ja gut

    hustbaer schrieb:

    Ist ja OK. Nur ... was willst du dann?
    Dein 2. Beitrag liest sich irgendwie so nach "ich brauch nicht mehr, ey" - und das passt dann nicht wirklich zu der Frage was du noch alles mehr machen könntest.

    Sollte sich eigentlich nicht so anhören.

    Aber ok dann lasse ich erstmal meinen Logger so. Macht halt genau das was ich will. Wenn ich mehr brauche kann ich den halt noch erweitern, aber momentan eher nicht.



  • Bennisen schrieb:

    Sollte sich eigentlich nicht so anhören.

    Aber ok ...

    Naja... sagen wir mal so: Der Beitrag motiviert nicht dir jetzt 100 Features aufzuzählen die man bei Loggern machen kann. Weil du die dann vermutlich nicht wichtig findest und ... wozu dann die Mühe.

    Aber OK, die allerwichtigsten Sachen (für mich, subjektiv) kann ich dir aufzählen:
    - Datum+Uhrzeit, Logger-Name und Thread-ID landen automatisch mit jeder Message mit im Logfile.
    - Automatische Logfile-Rotation, ohne dass man das Programm neu starten muss. Wichtig für 24/7 Server-Anwendungen.
    - Auto-Flush (nicht "deep", aber so dass man zumindest sofort mit Notepad/tail/... die Meldung sieht)
    - FILE_SHARE_READ



  • das wäre doch nochmal was, was ich eventuell noch machen könnte. Hört sich gut an. danke


Anmelden zum Antworten