Hallo Community,
hier, von mir, für Euch, zur freien Benutzung, mein Projekt: TraceEye, ein Log-Datei-Betrachter (LogViewer) mit vielen nützlichen Features.
Features:
· .NET 2.0 Applikation
· Portable, keine Installation nötig
· RealTime-Logging mit Pause,- Stop,- und Clear-Funktion
· Kein hoher Speicherverbrauch bei großen LogFiles
· Schnelles einlesen von LogFiles
· Parallele Log-Anzeige durch MDI-Technologie
· Windows & Linux Datei Unterstützung (\r\n, \r)
· Drag & Drop Log-Files
· Anzeige von letzter Änderung, Zeilennummer, Filegröße und Encoding
· Auto Encoding Detection
· Files von History öffnen
· Letzte geöffnete Files automatisch öffnen
· Multilanguage (DE, ENG)
· Diverse persistente Konfigurationsmöglichkeiten:
o TimeStamp Format
o Debug-Level (Name und Farbe)
o Gui Design (Farbe, Shading-Winkel, Schrift)
· XML-Konfiguration
· Debug-Level Notification
· Keyword Highlighting
· Autosave Position und Größe der MainGui
· Anzeige der Log-Zeilen in Spalten (Line, TimeStamp, Debug-Level, Message)
· Automatische Anordnung paralleler Log-Files (H, V, C)
· Vergleich zweier Files
· Notiz-Fenster mit Save-Funktion
· Optional Minimize ins SysTray
· Detail-View, mit Copy-Möglichkeit
· Suchfunktion mittels regulären Ausdrücken
· Suchergebnis-Highlighting
· komfortables Eventlog auslesen (Filterungen, Suche)
· Dokumentation
Anmerkungen:
· Alle Fragen über die Funktionsweise sollten durch die zugehörige Dokumentation beantwortet werden. Falls was unklar ist, fragt einfach nach.
· Über Feedback jeglicher Art freu ich mich natürlich, bei nachvollziebarem Bedarf würde ich auch fehlende nützliche Funktionen nach implementieren.
Viel Spaß damit!
**:::
Hallo Joetempes,
sieht schon mal sehr fein aus 😃
Ich werd mir das demnächst mal genauer ansehen, da ich doch recht häufig Logdateien analysieren "darf"...
Bisher habe ich für die Live-Betrachtung immer das Tool "Baretail" verwendet, falls Dir das was sagt, aber einige Dinge habe ich da schon immer vermisst...
Grüße,
Michael
Grüße,
der Michael
Sieht echt schick aus. Wenn du einstellen lässt, diedie Logfiles geparsed werden, werde ich es benutzen 😃 Sollte doch relativ einfach sein, so das ich einen regulären Ausdruck angeben kann. Das wäre das beste 😃
Hallo!
Spontan fehlt mir die Möglichkeit, per Kommandozeile eine Datei anzugeben, die dann direkt angezeigt werden kann.
Ansonsten ein schönes Programm.
Nobody is perfect. I'm sad, i'm not nobody 🙁
@ pdelvo
Teilweise geschieht das schon.
Beim jetzigen Stand des des LogViewer's wird davon ausgegangen, das eine Log-Zeile folgendes Format hat:
"TIMESTAMP<LEERZEICHEN>DEBUGLEVEL<LEERZEICHEN>MESSAGE"
Um eine Zeile korrekt zerlegen zu können, müssen die verwendeten Zeitstempelformate angelegt werden. Entweder das Format wird über die TextBox selbst definiert, oder es kann aus der ComboBox ausgewählt werden.
Ist auch das Debug-Level korrekt konfiguriert, wird der Inhalt der Zeile auf die 3 Spalten aufgeteilt. Sollte die Zeile nicht zerlegt werden können, wird einfach die ganze Zeile in eine Spalte geschrieben. Eine beliebige Format-Definition, so wie es z.B. Log4Net macht steht bereits auf meiner ToDo-Liste.
@ Lumbra
Ja Baretail kenne ich, das hatte ich mir auch angesehen, da fehlte mir aber einiges.
@ tom-essen
Gibts im nächsten Release.
Hallo!
Hab' noch ein paar Vorschläge:
Wozu sind die Statuszeilen (sowohl im Hauptfenster also auch in den MDI-Fenstern)?
Die scheinen z.Zt. ungenutzt. Evtl. über die Einstellungen ausblenden können.
Ansonsten ein sehr schönes Tool, gefällt mir.
Nobody is perfect. I'm sad, i'm not nobody 🙁
Hallo,
Deine neuen Vorschläge nehme ich alle an, danke.
In den Statusleisten werden Exceptions angezeigt.
Zieh mal z.B. c:\pagefile.sys in den LogViewer.
Ich hab auch schon wieder eine ganze Sammliung an Punkten die hinzu kommen.
Grüße
Gibts auch die Möglichkeit das Tool als Logger an ein Programm anzuhängen?
Kleiner Bug
Bei mir wird WARNING zu WARN
21.09.2011 10:10:51 WARNING Testmessage1
Desweiteren finde ich 400-500MB (schwankend) Ramverbrauch bei einer 22 MB Logdatei doch etwas sehr hoch.
Habe Gagweise mal eine 130 MB Logdatei erstellt... da ich leider nur 4GB Ram habe ging mir der Speicherplatz bei 2,5 GB langsam aus ^^
(sind ca 3 Millionen Einträge, habs nur getestet um mal den enormen Ramwachstum zu demonstrieren)
Ich weiß ja nicht was du da treibst, das klingt aber für mich nach einem sehr großen Overhead an Objekten. (die Datei selbst würde nicht diesen enormen RAM Wachstum erklären)
Evtl prüfst du deine Architektur nochmal nach starken Kopplungen.
Ansonsten der Logviewer sieht super aus
was noch fehlt wäre eine Filterfunktion alla: Zeige mir alles ab Datum X bis Y mit LogLevel ERROR z.B.
LG Krümel
Hallo KrümelKuchen,
danke für Deine Tests.
1.
Der Bug wird ist im nächsten Release gefixt.
2.
Über die RAM Problematik bin ich mir bewusst und auch bereits auf Lösungssuche.
Als Erklärung: Es ist nicht wirklich oberhead den ich erzeuge, sondern einfach pro Zeile
ein ListViewItem mit 3 SubItems, die in der ListView gehalten werden.
3.
Filterfunktion / Sortierfunktion steht schon auf meinem Plan.
Grüße
Hab ein Update im Eröffnungsthread bereit gestellt.
Änderungen:
Die wichtigste Änderung ist die Optimierung vom File Auslesen und Anzeigen.
Aktuell ist es jetzt so, das ein 200MB File bei mir in 4 Sec geladen wird und unter 600MB RAM verbraucht. Das ist noch lange nicht Optimum aber etwas womit man leben und arbeiten kann.
Durch Änderungen an der Konfiguration ist die alte Konfiguration jetzt ungültig.
Die Dokumentation hab ich noch nicht nach gezogen.
Hier mal eine Liste der Features die auf meiner ToDo Liste stehen:
Viel Spaß damit!
Hallo!
Neue Version gerade ausprobiert, jetzt erkennt er allerdings nicht mehr die Levels (Dieselbe Datei wie vorher).
Hier mal ein Ausschnitt (Trennung mit Tabulatoren):
22.09.2011 08:11:08 Info Parse message ...
22.09.2011 08:11:08 Debug - 'Auflösung' = '100 dpi'
22.09.2011 08:11:08 Debug - 'Datum' = '22.09.2011 08:10:03'
22.09.2011 08:11:08 Debug - 'Dauer' = '00:57'
22.09.2011 08:11:08 Debug - 'Durchwahl' = '799'
22.09.2011 08:11:08 Debug - 'Faxstation-ID' = '-----'
22.09.2011 08:11:08 Debug - 'Geschwindigkeit' = '12000'
22.09.2011 08:11:08 Debug - 'Name' = ''
22.09.2011 08:11:08 Debug - 'Nummer' = '-----'
22.09.2011 08:11:08 Debug - 'Seiten' = '2'
22.09.2011 08:11:08 Debug - 'Status' = 'Empfang erfolgreich'
Nobody is perfect. I'm sad, i'm not nobody 🙁
Hi Tom,
danke, habs an Hand Deines Log's gefixt und getestet.
Werde gleich das Team bitten es neu hoch zu laden.
EDIT: Neue Version wurde hoch geladen.
Trennzeichen zwischen Debug-Level und Message kann jetzt Leerzeichen oder Tab sein.
Hallo!
Sehr schön ist ja die MinimizeToTray-Funktion.
Wenn die jetzt auch noch (evtl. optional) mit einem einfachen Klick funktionieren würde, wäre sehr schön. Grund:
Mit Doppelklick wird das Fenster geöffnet, sobald der zweite Klick gemacht wird. Da ich erst danach leicht zeitverzögert die maustaste loslasse, bin ich dann schon über einem anderen TrayIcon, welches bereits nach einem Klick aufpoppt.
Somit habe ich ungewollt die andere Anwendung auch wieder hervorgeholt.
Ist aber kein wichtiger Punkt.
Nobody is perfect. I'm sad, i'm not nobody 🙁
Im Start-Post befindet sich ein Update, mit folgenden Änderungen:
(Die Doku wurde noch nicht nachgezogen!)
Viel Spaß damit!
Hallo Joetempes,
erstmal schönes Tool. Wäre eine Überlegung wert es intern einzusetzen...
Mir sind beim Ausprobieren folgende Fehler aufgefallen:
Das Programm hängt sich auf wenn man mit einer geöffneten Logfile das Programm komplett über Schließen Icon (X) beenden möchte. Dann hilft nur noch der Task-Manager. Wenn man vorher die Log-Files schließt, passiert es nicht.
Wenn man einmal die Notizen offen hatte und diese wieder schließt, lässt sich es nicht mehr nochmal öffnen.
CommandLine mit mehr als nur einer Datei funktioniert nicht!? (Drag&Drop mit mehreren Files auf die EXE)
MinimizeToTray: Ich hatte zwei Log-Files offen und die Fenster vertikal kaskadiert, Hauptfenster maximiert. Nach dem MinimizeToTray und wieder öffnen, ist das Hauptfenster nicht mehr maximiert und die Childs (also Log-files) sind dann direkt übereinander (also gleiche Position) angeordnet...
**
Vergleich von Dateien:**
Hallo steffen_dec,
vielen Dank für Deine Tests, hier meine Anmerkungen dazu:
- Das Programm hängt sich auf wenn man mit einer geöffneten Logfile das Programm komplett über Schließen Icon (X) beenden möchte. Dann hilft nur noch der Task-Manager. Wenn man vorher die Log-Files schließt, passiert es nicht.
Das wäre fatal, ich kann es leider nicht nachstellen, ist mir auch noch nie passiert.
Wäre schön wenn Du das noch weiter eingrenzen könntest....
- Wenn man einmal die Notizen offen hatte und diese wieder schließt, lässt sich es nicht mehr nochmal öffnen.
BUG!, wird gefixt im nächsten Release.
- CommandLine mit mehr als nur einer Datei funktioniert nicht!? (Drag&Drop mit mehreren Files auf die EXE)
Korrekt, ist nur für eine Datei implementiert. Erweiter ich, auf Deinen Wunsch hin.
- MinimizeToTray: Ich hatte zwei Log-Files offen und die Fenster vertikal kaskadiert, Hauptfenster maximiert. Nach dem MinimizeToTray und wieder öffnen, ist das Hauptfenster nicht mehr maximiert und die Childs (also Log-files) sind dann direkt übereinander (also gleiche Position) angeordnet...
BUG!, wird gefixt im nächsten Release.
- Liefert den Unterschied in einer MessageBox mit "Zeile: x" wobei die Zeile hier ab 1 anfängt. In der Liste fangen aber die Zeilen bei 0 an, dies sollte man vereinheitlichen
BUG!, wird gefixt im nächsten Release.
- Der Unterschied wird grün hinterlegt allerdings erst wenn diese Zeile markiert war (dort fehlt wohl nur ein Refresh oder ähnl.), dann wird nur die Spalte "Nachricht" grün hinterlegt obwohl z.b. der Unterschied in der Spalte "Zeitstempel" ist.
- Der Unterschied bleibt für immer markiert auch wenn man eine Suche ausführt, und die Suchergebnisse mit gleicher Farbe markiert werden....
BUG!, wird gefixt im nächsten Release.
- Es wird nur der erste Unterschied markiert? Warum nicht alle?
Das ist gewollt, wer wirklich ordentlich Diffen will, soll sich ein professionelles Diff-Werkzeug besorgen.
Grüße
Bitte alles Weitere zu den schon gemeldeten Fehlern per PM. Das Endergebnis kann natürlich wieder in den Thread.
Im Start-Post befindet sich ein Update, mit folgenden Änderungen:
Und hier nochmal der die aktuellen Punkte auf meiner ToDo-Liste für 2012:
Viel spaß damit!
Programm öffnet sich nicht wirklich bei mir.
Hab Win 7 SP1
Das Programm ist in der Taskleiste sichtbar und teilweise auch über die Voransicht aber das Fenster
selber ist versteckt / nicht zu sehen.
Es verschwindet ausserhalb des Bildschirmbereiches nach rechts wenn man oft maximiert / minimiert.
Startet es vllt an einer definierten Stelle auf dem Bildschirm ?
/edit in der config file war die Startlocation mit 2260 zu 86 eingestellt Oo.
somit behoben jetzt
Es wurde eine neue Version hoch geladen, folgende Änderungen sind enthalten:
@iSliver
Danke für den Hinweis!
Grüße
Es wurde eine neue Version hoch geladen, folgende Änderungen sind enthalten:
Zum Speicherverbrauch:
Bei vielen Einträgen stößt man halt mit der ListView an ihre Grenzen. Entweder würde ich die ListView pagen oder es mit dem DataGridView probieren, sollte grundsätzlich Speicherschonender sein.
> Codejunky <
Hallo Joetempes,
also ich hab TraceEye jetzt ein bisschen verwendet und finde das echt gut soweit.
Habe ein paar Anmerkungen:
Fehlermeldung:
Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.
Parametername: index bei System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
bei System.ThrowHelper.ThrowArgumentOutOfRangeException()
bei System.Collections.Generic.List`1.get_Item(Int32 index)
bei TraceEye.Library.Dialogs.FormTraceEyeMain.loadLastOpenedFiles()
bei TraceEye.Library.Dialogs.FormTraceEyeMain..ctor()
bei TraceEye.Program.SingleInstanceController.OnCreateMainForm()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
Fehlermeldung:
Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.
Parametername: index bei System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
bei System.ThrowHelper.ThrowArgumentOutOfRangeException()
bei System.Collections.Generic.List`1.get_Item(Int32 index)
bei TraceEye.Library.Dialogs.FormTraceEyeMain.loadLastOpenedFiles()
bei TraceEye.Library.Dialogs.FormTraceEyeMain..ctor()
bei TraceEye.Program.SingleInstanceController.OnCreateMainForm()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
bei TraceEye.Program.Program.Main()
Viele Grüße, Alf
Es wurde eine neue Version hoch geladen, folgende Änderungen sind enthalten:
1.
BugFix: Exception, wenn das letzte geladene File wieder geladen werden soll und das File ist nicht vorhanden.
2.
BugFix: Anzeige Form-Controls, wenn letztes File maximiert wieder geöffnet wird.
@Alf Ator
Vielen Dank für Deine Tests, zu Deinen Punkten:
1-3
Ok, erst mal zur Kenntnis genommen.
4
Das ist halt die Funktionalität dieses Steuerelements, das macht das Framework so.
5+7
Fixed.
6
Kann ich leider nicht nachstellen, kannst Du mir das Log schicken?
(Falls ja, schreib mir bitte eine PM.)
@JunkyXL
An der Problematik bin ich noch dran.
Es wurde eine neue Version hoch geladen, folgende Änderungen sind enthalten:
Viel Spaß damit!
(Sollte hier nicht soviel schief gegangen sein, folgt jetzt erst mal ne Pause...)
Edit:
Hab grad mitbekommen: Wird TraceEye mit aktiver Benutzerkontensteuerung (UAC) gestartet, stürzt das Programm vollständig ab, da der Zugriff auf das Eventlog verweigert wird. Das Programm muss als Admin gestartet werden. Ein Fix folgt...
Es wurde eine neue Version hoch geladen, folgende Änderungen sind enthalten:
Auf meiner ToDo-Liste steht nur noch ein Punkt:
Viel Spaß damit!
Grüße
Joe
Hallo,
...
- Schema Definition für LogFile-Format, ala log4Net mit freier Spaltendefinition
Doch das wird dies Jahr nichts mehr....
...
schade, genau das ist der punkt der mir noch fehlt. ansonsten super tool, nur ohne diese feature fuer mich nicht nutzbar.
MfG Paul
...nur ohne diese feature fuer mich nicht nutzbar.
Das stimmt so nicht!
Denn auch wenn Dein Log nicht der aktuellen Konvention entspricht, fehlen Dir in der Anzeige nur die Spalten: Zeitstempel und Debug-Level. Du hast immer noch Zeilennummer, der Rest wird in die Message-Spalte geschrieben. Und Du kannst auch alle anderen Funktionen, wie z.B. Suche oder Live-Log nutzen.
Es ist also, wenn überhaupt, eher eine Frage des optischen Geschmacks.
Aber das nur am Rande, falls Du noch Fragen hast schreib mir bitte eine PM, dann brauchen wir den Projekt-Thread nicht unnötig aufblasen...
Gruß
Joe
Es wurde eine neue Version (1.7.5.0) hoch geladen, folgende Änderungen sind enthalten:
Viel Spaß damit...
Joe
Es wurde eine neue Version hoch geladen, folgende Änderungen sind enthalten:
Hallo und erstmal danke für dieses tolle Programm.
Beim einstellen ist mir aufgefallen, dass beim Einstellen der Farben für Level oder Schlüsselwörter der Colorpicker nicht mit der aktuell eingestellten Farbe gestartet wird. Er steht immer von auf schwarz. Wenn man nur eine Farbe leicht verändern möchte ist das aber kaum möglich, zumal man den Farbwert in Hex auch nicht im Colorpicker eingeben kann.
Gruß
Troubadix
Danke, habe ich gefixt, so war es an 2 weiteren Stellen auch noch.
Upload folgt...
Hallo Joetempes.
Ich hätte da mal ein Feature Request.
In unseren Logfiles wird bei einem schweren Fehler ein Stacktrace mit ins File geschrieben. Dieser Stacktrace enthält Zeilenumbrüche (CR). Leider gehen die Zeilen nach dem ersten Zeilenumbruch verloren wenn ich das Logfile im TraceEye öffne. Es wäre schön wenn die zusätzlichen Zeilen in der Detailansicht (Eintrag ausgewählt) angezeigt würden.
Ich hänge Dir mal ein typisches Logfile (Auszug) von uns hier an. Vielleicht hast du ja mal Zeit und Lust das einzubauen. Oder habe ich nur einen Parameter übersehen der das erledigt?
Gruß
Troubadix
Hallo Troubadix,
das scheint mir ein Fehler zu sein.
Fix ich Dir demnächst...
Gruß
Joe
Es wurde eine neue Version hoch geladen, folgende Änderungen sind enthalten:
Viel Spaß damit!
Hallo Joe,
vielen Dank für das schnelle ändern. Jetzt kann ich meine LogFiles schon fast ohne Handarbeit damit anschauen.
Mir sind leider noch zwei dinge aufgefallen:
Ich kann natürlich verstehen, wenn du das Programm jetzt nicht auf meine LogFiles zuschneidern willst.
Gruß
Troubadix
Hallo Troubadix,
1.
gib mir mal ein Logfile wo das so ist, mit Deinem letzten passiert dieser Fehler nicht.
(Bzw. wenn es bei dem File auch passieren sollte, gib mir mal Deine Konfiguration.)
2.
Vergiss es... 😃
Gruß
Joe
Hallo Joe,
es liegt scheinbar nicht nur an der ersten Zeile. Es hängt auch mit der Länge zusammen oder etwas anderes im Logfile stört.
Ich werde Dir das File per PN schicken. Muß ja nicht jeder hier lesen können 😃
Gruß
Troubadix
Es wurde eine neue Version hoch geladen, folgende Änderungen sind enthalten: