Parsing a Log File - Java

1

Sto leggendo un file di log in Java su una macchina Linux su un programma continuo di 2 minuti alla ricerca di determinati messaggi. Conservo l'ultimo offset (RandomAccessFile getFilePointer) e leggo da questo in poi quando rilevo LastModified è cambiato; è questa la migliore pratica o anche giusto?

    
posta Dane Balia 21.01.2013 - 12:09
fonte

2 risposte

2

Supponendo quanto segue:

  • questo file di registro viene aggiunto solo a
  • sei pronto a soddisfare la possibilità che il file non esista più / meno del tuo attuale offset
  • la scrittura del programma per la registrazione non tenterebbe di cancellare il file di registro (dato che potresti leggerlo al momento) o che gestisce bene tali situazioni

Non dovresti avere molto di cui preoccuparti. Ricordati solo di chiudere il file dopo averlo letto e di aprirlo solo con la modalità "r".

    
risposta data 21.01.2013 - 12:24
fonte
2

Se funziona, allora è abbastanza buono. L'unico problema che vedo con questa soluzione è duplice:

  1. Che cosa accade se qualcuno modifica il file di registro? Il programma java ignorerà queste modifiche.
  2. Cosa succede se il logger divide il file di registro? L'ultimo puntatore del file di offset non sarà valido.

Il primo punto è un po 'difficile dal momento che è una cattiva idea modificare un file di registro (dato che gli utenti dovrebbero solo aggiungere al file). Il secondo punto è una pratica comune, che il file di registro è suddiviso in date o in alcune righe.

    
risposta data 21.01.2013 - 12:23
fonte

Leggi altre domande sui tag