R4PE.Log, einfache & schnelle Logging Library

    • Beta
    • Open Source

    Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von eddi2345.

      R4PE.Log, einfache & schnelle Logging Library

      Name:
      R4PE.Log

      Beschreibung:
      Mit dieser Library hat man die Möglichkeit, ganz einfach & schnell alles vom eigenen Programm zu loggen.
      Der Log wird in der Konsole und/oder einer Datei ausgegeben.

      Beispiele:

      C#-Quellcode

      1. //Hiermit wird ein Text im Log ausgegeben. Loglevel sind unten weiter erklärt.
      2. Logger.WriteLine("Text",LogLevel.Info)
      3. //Hiermiet wird eine Usereingabe abgefragt. Funktioniert genauso wie Console.ReadLine, nur wird die eingabe nicht vom Log überschrieben und es kann ggf. ein Prefix angegeben werden.
      4. if(Logger.ReadLine("> ") == "blabal")
      5. {
      6. //do something...
      7. }
      8. //Zum Console Logging:
      9. Logger.EnableConsoleLogging();
      10. Logger.DisableConsoleLogging();
      11. //Zum File-Logging:
      12. Logger.EnableFileLogging("log.txt");
      13. Logger.DisableFileLogging();
      14. //Wenn die anwendung nach einem Fatal beendet werden soll:
      15. Logger.exitOnFatal = true;
      16. //Eigene Loglevel:
      17. Logger.AddLogLevel("logName","displayName",ConsoleColor.Grey);
      18. Logger.CWriteLine("hallo welt","logName");


      Folgende Log-Stufen stehen zur verfügung:
      • Fatal
      • Warn
      • Info
      • Debug
      als Bsp: LogLevel.Fatal

      Screenshots:


      Changelog:
      Spoiler anzeigen


      v1.3:
      • + <void> Logger.AddLogLevel("logName","displayName",ConsoleColor.Grey);
      • + <void> Logger.CWriteLine("text","logName");
      • + <bool> Logger.exitOnFatal = true;

      v1.2:
      • + <void> Logger.EnableConsoleLogging();
      • + <void> Logger.DisableConsoleLogging();
      • + <void> Logger.EnableFileLogging("test.txt");
      • + <void> Logger.DisableFileLogging();
      • - <bool> Logger.consoleOutput;
      • - <void> Logger.Setup();


      v1.1:
      • + <void> Logger.ShowStackTrace(LogLevel.Info);
      • + <string> Logger.GetStackTrace();


      Funktioniert übrigens problemlos auf Mono / Ubuntu LTS 14.04

      Vorschläge könnt ihr gerne hier rein Posten :)

      Würde mich über feedback natürlich sehr freuen!


      Verwendete Programmiersprache(n) und IDE(s):
      Visual Studio 2015 Enterprise, C# 5.0, .Net Framework 4.6

      Systemanforderungen:
      .Net Framework 4.6
      Falls benötigt, kann selbst auf anderere Versionen kompiliert werden.

      Download(s):
      github.com/R4PE-AirWarrior/R4PE.Log (Source Code & Compiled Bins)

      (wird bald komplett neugeschrieben, und auf ner neuen Repo.)

      Lizenz/Weitergabe:
      Open Source, Einkompilierung nur mit Namesnennung
      Bilder
      • Screenshot_4.png

        21,41 kB, 677×344, 657 mal angesehen

      Dieser Beitrag wurde bereits 15 mal editiert, zuletzt von „eddi2345“ ()

      Finde es etwas sehr minimalistisch. Zumindest das definieren von eigenen Loggern sollte möglich sein. Würde auch mehr Möglichkeiten zulassen. Bei den Loggern eventuell auch noch eine Möglichkeit schaffen einen simplen Filter (z.B. nur ab Warning aufwärts) zu verwenden. Da gibt es viele andere Ideen. Aber hier ist doch recht wenig dabei.
      Zudem, .NET 4.5 für eine Konsolenausgabe und einen Dateizugriff?


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

      ThuCommix schrieb:

      System.Diagnostics.Debug.WriteLine ist mir da praktischer..

      Meine Rede. Die Architektur (wenn man es so nennen kann) lässt rein gar nichts zu. Der eine wills in die Debug-Ausgabe, der andere in die Konsole, wieder einer in eine Datei, dann kommt der nächste und wills in ne Datenbank usw.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Gut, es ist ja noch eine "beta" wenn man es so nennen kann.
      .Net Framework 4.5 auf die schnelle, kann aber von mir gerne nochmal in 2 und 3.5 compiled werden.
      Es werden definitiv noch viele Features folgen.

      Könnt auch gerne Ideen beitragen, wenn ihr zu viel zeit habt! :)

      @'ThuCommix oben stehen momentan 2 möglichkeiten wie du loggen kannst. Kannst auch beide auf einmal verwenden
      Wie wärs wenn das Level Fatal erreicht wurde, dass die Applikation direkt beendet wird?

      Ebenfalls ganz cool wäre wenn man eigene Levels definieren könnte. Ansonsten ganz cool auf den ersten Blick :)
      Software being "Done" is like lawn being "Mowed". (Jim Benson)

      KidRick schrieb:

      Wie wärs wenn das Level Fatal erreicht wurde, dass die Applikation direkt beendet wird?

      Ebenfalls ganz cool wäre wenn man eigene Levels definieren könnte. Ansonsten ganz cool auf den ersten Blick :)


      Beides steht nun auf der ToDo list, aber das mit dem sofort beenden muss per bool erst aktiviert werden.

      Edit:

      @KidRick alles eingefügt. aktuelle downloads auf github.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „eddi2345“ ()

      jedijaeger schrieb:

      Mal ne vlt doofe Frage :D:

      Ist die Konsolenausgabe nur bei ner Konsolenanwendung verfügbar oder auch in WinForms (ohne Trickserei)?

      LG Julian


      Ja ist sie. einfach " Logger.AttachConsole(); " aufrufen.

      Ansonsten kannst du auch nur das File-Logging benutzen.
      Dann gibt Logger.ReadLine() natürlich null als return.

      MfG

      Edit:

      Sorry @jedijaeger, du meintest wahrscheinlich auch in einer Richtextbox o.ä.

      Werd ich in der nächsten version einbauen ! :)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „eddi2345“ ()