Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich will eine Log sortieren, habe meine Kernl Logs in eine Datei zusammengefasst und würde die gerne sortieren, in der Reihenfolge: Monat Tag Uhrzeit

Orginal Sieht die Log so aus: MMM 15 oder MMM 7 und danach uhrzeit.

Leider geht mit Collections.sort die Sortierung nicht optimal. Dachte da an nen comperator, aber ist schon länger her, dass ich den benutzt habe. Hätte gerne eine sortierung nach monaten und da nach den tagen. Bekomme sowas wie Sep 14...par zeilen später Sep 15 und dann wieder sep 14.

Sitze da schon seit 2 tagen dran.

Mit den Informationen kann mir Dir gar nicht helfen. Nicht eine Zeile Code gepostet. So würde ich einfach mal sagen, der Code ist nicht korrekt. Was ist denn MMM und braucht man zum Sortieren nicht auch eine Vergleichsmethode? Du machst Doch hoffentlich nicht einfach eine Textzeilensortierung?

Mit den Informationen kann mir Dir gar nicht helfen. Nicht eine Zeile Code gepostet. So würde ich einfach mal sagen, der Code ist nicht korrekt. Was ist denn MMM und braucht man zum Sortieren nicht auch eine Vergleichsmethode?

Naja, ist etwas viel code. 8 Klassen sind ja schon paar hundert zeilen. Aber kennt einer eine gute Methode einen Linux kernl log (habe schon die gz und syslog.1 und syslog in einer temp) sinnvoll zu sortieren?

Ich erzeuge mir in meinem Prog einfach eine zusammengesetzte datei aus den logs, hole sie in eine ArrayList und benutze sort um sie zu sortieren, aber das klappt nicht so ganz. Dachte auch schon, dass das prog zu fix vorgeht, habe nen sleep eingebaut, aber das tuts auch nicht. Also es geht nur um die sortierung der syslog nach monat und tag

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.util.ArrayList;

import java.util.Collections;

public class Sortierung

{

/**

* @param args the command line arguments

*/

public ArrayList<String> sortieren(String pfad)

{

ArrayList<String> list = new ArrayList<String>();

ArrayList<String> list1 = new ArrayList<String>();

//lesen

try

{

BufferedReader in = new BufferedReader(new FileReader(pfad+"temp_syslog"));

String zeile = null;

while ((zeile = in.readLine()) != null)

{

list.add(zeile.toString());

}

} catch (IOException e)

{

}

//sortieren

Collections.sort(list);

//Einträge vom ersten und letzen Log in Liste adden, erster und letzter ausserhalb der Schleife

list1.add(list.get(0).toString());

for (int i = 1; i < list.size(); i++)

{

if (!list.get(i - 1).toString().substring(0, 6).equals(list.get(i).toString().substring(0, 6)))

{

list1.add(list.get(i - 1).toString());

list1.add(list.get(i).toString());

}

}

list1.add(list.get(list.size() - 1).toString());

try

{

Thread.sleep(600);

} catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

return list1;

}

}

code zur sortierung

Bearbeitet von Sardoan

Ich erzeuge mir in meinem Prog einfach eine zusammengesetzte datei aus den logs, hole sie in eine ArrayList und benutze sort um sie zu sortieren, aber das klappt nicht so ganz.

implementiere die Comparable Schnittstelle korrekt, für Deine Sortierung

Dachte auch schon, dass das prog zu fix vorgeht, habe nen sleep eingebaut, aber das tuts auch nicht.

wie kommt man auf so abwegige Gedanken !?

Hehe, weil die console oft zu lahm ist.

Bin ja noch Anfänger. Aber habe schon paar fehler entdeckt. Ich wollte das prog auf einem niedrigen Level halten, also ohne comperator.

Habe den Fehler in meinem Sortier-Algorithmus gefunden, trotzdem danke.

Schwere geburt

Wäre die einfachste Lösung nicht gewesen, die Log-Zeile einfach umzuschreiben? Du weisst an welcher Stelle in deinem String Monat bzw. Tag steht.

Ziehs als substring und setz es an den Anfang deiner Zeile. Dann kannste auch .sort anwenden und die Sonne scheint. Nach dem Sortieren kannst du dann die beiden Informationen vorne wieder abschneiden.

Is nich schön, dafür aber auch nicht komplex ;)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.