Hallo,
ich möchte in meiner Software alle Exceptions die auftreten abfangen, abspeichern und in einem seperaten Fenster anzeigen.
Meine Idee war nun jedes mal wenn eine Exception irgendwo auftritt das ganze in einem txt file abzuspeichern (mit Zeitstempel)
Nun hab ich mir ein Internes Fenster angelegt mit einer JList. Ebenso einen Thread der diese Liste aktuell halten soll
Der Thread ruft nun alle 100ms diese Methode auf um meine Liste mit den Fehlermeldungen aktuell zu halten.
Kann man das grundsätlich besser lösen? weil ich finde wenn der Thread nun alle 100ms (gut ich kann gerne noch auf (500-1000ms hochgehen) das komplette File von vorne bis hinten durchläuft und schaut ob es was neues gibt doch etwas performancelastig, oder täusche ich mich da? Kann man vielleicht direkt an eine Zeile springen und von da das lesen beginnen? Ich weiß ja theoretisch das er die Zeilen welche schon im Fenster(JList) angezeigt werden auch in meinem File nicht mehr lesen muss.
Edit: ich hab mal den Threadtitel mit - log4j versehen. Da das eigentliche Problem zu einem ganz anderen wurde.
ich möchte in meiner Software alle Exceptions die auftreten abfangen, abspeichern und in einem seperaten Fenster anzeigen.
Meine Idee war nun jedes mal wenn eine Exception irgendwo auftritt das ganze in einem txt file abzuspeichern (mit Zeitstempel)
Nun hab ich mir ein Internes Fenster angelegt mit einer JList. Ebenso einen Thread der diese Liste aktuell halten soll
Der Thread ruft nun alle 100ms diese Methode auf um meine Liste mit den Fehlermeldungen aktuell zu halten.
Kann man das grundsätlich besser lösen? weil ich finde wenn der Thread nun alle 100ms (gut ich kann gerne noch auf (500-1000ms hochgehen) das komplette File von vorne bis hinten durchläuft und schaut ob es was neues gibt doch etwas performancelastig, oder täusche ich mich da? Kann man vielleicht direkt an eine Zeile springen und von da das lesen beginnen? Ich weiß ja theoretisch das er die Zeilen welche schon im Fenster(JList) angezeigt werden auch in meinem File nicht mehr lesen muss.
Code:
private DefaultListModel exceptionListModel = new DefaultListModel();
public void exceptionsauslesen(){
File readfile = new File("log\\exceptions.txt");
String line;
int anzexceptionslist = exceptionListModel.getSize();
try
{
if (!readfile.exists())
{
readfile.createNewFile();
}
LineNumberReader exceptionsreader = new LineNumberReader(new BufferedReader(new FileReader(readfile)));
while((line = exceptionsreader.readLine()) != null){
if(exceptionsreader.getLineNumber() > anzexceptionslist){
exceptionListModel.addElement(line);
}
}
}
catch (Exception e)
{
System.err.println("Fehler: " + e.getMessage());
}
}
Edit: ich hab mal den Threadtitel mit - log4j versehen. Da das eigentliche Problem zu einem ganz anderen wurde.