WinFuture-Forum.de: Log-klasse - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Log-klasse


#1 Mitglied ist offline   DonElTomato 

  • Gruppe: aktive Mitglieder
  • Beiträge: 311
  • Beigetreten: 04. Oktober 05
  • Reputation: 0

geschrieben 14. Juli 2006 - 14:02

Hallo

ich bin momentan an einer Klasse mit der man einfach log-dateien anfertigen kann.
Diese Datei soll eine Textdatei sein, in mehr mehrere Informationen Pro Zeile (1 Zeile = 1 Eintrag) stehen.
Diese sind durch ; getrennt und jeweils noch von "" umgeben.

Also s.B.: "Info";"10:30:23";"Verbindung aufgebaut"

Diese Datei wird jedoch von 2-3 Programmen gleichzeitig verwendet. Bisher habe ich da einen Timer, der sobald sich die Datei geändert hat, alle Einträge neu einliest. Allerdings dauetrt das mit ansteigender größe der Log-Datei immer länger.

Hat jemand eine idee wie ich oben beschriebene Prinzip beibehalten kann und dennoch höhere geschwindigkeiten beim einlesen erziele? Bisher habe ich ein ReadLine (bis eof) und darin die Aufteilung in Columns und einfügen in eine ListView.

Allerdings kommt eine Format wie XML wegen der unübersichtlichkeit leider nicht in Frage....

MFG

Don
0

Anzeige



#2 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 15. Juli 2006 - 10:14

hoert sich nach nem idealen job fuer ne datenbank an ^^
I'm mó. mo's good twin.
0

#3 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 15. Juli 2006 - 11:01

Warum das Rat neu erfinden? Es gibt so viele schöne frei verfügbare Logger

Zitat

XML wegen der unübersichtlichkeit

ähm...und du weißt wirklich was XML ist?
XML wird doch wegen der einfach zu lesenden Baumstruktur sehr oft eingesetzt.
0

#4 Mitglied ist offline   PanTau 

  • Gruppe: aktive Mitglieder
  • Beiträge: 20
  • Beigetreten: 19. Oktober 05
  • Reputation: 0

geschrieben 15. Juli 2006 - 11:22

Um zu wissen, ob sich was geändert hat, kannst du doch mit nem Hash des Inhalts arbeiten - oder nimmst du das Änderungsdatum der Datei?

Eine Datenbank ist auf jeden Fall schneller und du bekommst keine Probleme, mit zwei Programme gleichzeitig loggen wollen! Oft können fertige Lösungen diverse Sachen die man einfach nicht braucht, da ist sowas selbstgeschriebenes schon besser ;)
0

#5 _MagicAndre1981_

  • Gruppe: Gäste

geschrieben 15. Juli 2006 - 11:26

log4net ;)
0

#6 Mitglied ist offline   [U]nixchecker 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 17. Mai 05
  • Reputation: 0
  • Wohnort:Bayern
  • Interessen:Informatik, Linux, Rollerbladen, Bodybuilding, GungFu

geschrieben 16. Juli 2006 - 19:07

Ich kann natürlich jetzt nicht genau sagen wie dein komplettes Szenario aussieht, aber um z.B. mehreren Programmen immer die Möglichkeit zu geben an die aktuellsten Daten ranzukommen würde ich shared memory nutzen.

Z.B. Programm 1 logged 10 Zeilen in nen shared memory bereich, und überschreibt die älteste mit nem neuen Eintrag, irgendwann kommen dann die anderen Programme hinzu und lesen laufend aus dem shm.

So damit kannst du dir z.B. immer die letzten 10 log Meldungen ansehen. Davor wenn du es benötigst, kannst du bei Programmstart erstmal die komplette Log Datei einlesen, danach laufend aus dem shared mem. Du benötigst auch keinen Timer, das ganze in nem thread wobei du den shared mem bereich mit nem Semaphore sperrst, somit bekommst du sofort mit wenn sich was ändert und hast keinen Zeit verlust wie mit nem Timer.
0

#7 Mitglied ist offline   Kr1x 

  • Gruppe: aktive Mitglieder
  • Beiträge: 143
  • Beigetreten: 27. Juli 02
  • Reputation: 0

geschrieben 16. Juli 2006 - 19:35

lass doch jedes programm ne eigene log datei nutzen und mit deinem timre alle x-minuten die 3 logdateien in die haupt-logdatei hinzufügen und danach löschen
0

#8 Mitglied ist offline   stefanra 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.208
  • Beigetreten: 13. September 04
  • Reputation: 1

geschrieben 16. Juli 2006 - 19:37

Also 'ne Datenbank wäre wohl die feinste Lösung.
0

#9 Mitglied ist offline   DonElTomato 

  • Gruppe: aktive Mitglieder
  • Beiträge: 311
  • Beigetreten: 04. Oktober 05
  • Reputation: 0

geschrieben 17. Juli 2006 - 08:11

Mann das sind ja viele Antworten ;-)

Also an XML habe ich auch erst gedacht, aber GERADE die Baumstruktur ist etwas unübersichtlich.

Aber darauf werde ich wohl doch zurückgreifen ;-)
Eine Datenbank ist etwas überladen, denn diese kann man dann nur mit entsprechenden Tools öffnen.

Eine .txt Datei ist da wohl handlicher.

Ansonsten danke für eure Mühen. Ich werde dann wohl nach XML tendieren und wenn die Log-Datei exportiert werden soll, wird sie als .txt mit der oben beschriebenen Form gespeichert. MFG
0

#10 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 17. Juli 2006 - 12:53

Zitat


Ein sehr sehr einseitige Weltsicht.

Meine Empfehlung: log4j. Davon gibt's auch Derivate für .NET, C++, Python, Perl und Ruby. Und ist sehr ausgereift.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#11 _MagicAndre1981_

  • Gruppe: Gäste

geschrieben 17. Juli 2006 - 16:02

@Rika

Log-klasse

:P :wink:
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0