Textdatei mit Zeilensprung - logDatei auswerten

Status
Nicht offen für weitere Antworten.

Skipy

Mitglied
Hi Leute!
Ich bin grad dabei ein Programm zu schreiben, dass die Dog (access)-Datei meines ApacheServers auswerten soll! Es funktioniert auch sehr gut. Due Funktion: Es kreiert eine HTML-Datei inder Benutzername, IP, Zeit, Datum und Zugriffsdatei vermerkt sind. Alles das in einer Tabelle.

Mittlerweile enthält meine Log-Datei jedoch schon über 15000 Einträge (alle in einer TXT-Datei gespeichert). Gibt es einen Befehl, mit dem ich
- lediglich die letzten 20 Zeilen der Textdatei abrufen kann
- das mir angibt wieviel Zeilen meine Textdatei hat
- mit dem ich per Zeilensprung auf eine Zeile zugreifen kann

Bis jetzt benutze ich so etwas:
Code:
FileReader datei = new FileReader("preferences.txt");
				BufferedReader datei_buf = new BufferedReader(datei);

				while(read != null){ 
					read = datei_buf.readLine();
...
Ist aber sehr lästig da ich immer die Gesamte Log-Datei abrufen muss! Das will ich wie gesagt nun anderst machen. Das Prorgamm braucht nämlich mittlwereile schon 1 Minute alles auszuwerten *lol*

Danke für eure Hilfe, mal im voraus!
Gruß Skipy
 
- lediglich die letzten 20 Zeilen der Textdatei abrufen kann

in java nicht (oder nur mit RandomAccessFile, ist aber übel)

- das mir angibt wieviel Zeilen meine Textdatei hat

nein, dazu muss man es erst komplett einlesen

- mit dem ich per Zeilensprung auf eine Zeile zugreifen kann

nein



warum nimmst du nicht webalizer oder so ein tool? ist doch völlig überflüssige arbeit....

ggf. ist es schneller, wenn du unter Linux mit Runtime.exec mal schnell ein

tail -20 access.log

wc -l access.log

cat -n access.log | grep ^\ *9 // die 9.zeile
 
AHA! Shell nehme ich an :wink:
Davon habe ich allerdings nicht all zu viel Ahnung 😀
Ich benutze meinen Macintosh ....
Trotzdem Danke

Was für ein Tool hast du genau gemeint??

Ist es dann wenigstens möglich die Zeilen nach unten durchzuspringen, ohne jede einzeln einlesen zu müssen?
So was wie einlesen.jumNextLine() oder so :roll:

Wenn noch jemand eine gute Idee hat, freue ich mich!
Danke
Gruß
kipy
 
Ich benutze meinen Macintosh ....

da hast du das auch, steckt ja ein unix drin

noch nie was von webalizer gehört??

und:

es gibt ein java keine Möglichkeit zu springen, mach eben

readLine()

und ignoriere die die du nicht willst
 
genauer: es ist übel mit RandomAccessFile und skipBytes zu einer bestimmten Zeile hüpfen zu wollen...

geht doch gar nicht, man muss auf jeden fall ALLES einlesen...

oder kann man irgendwie ein skipLine machen? glaub nich??
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben