Assistenza per l'analisi dei file di log Java

3

Sto scrivendo un parser di log che cerca continuamente modelli specifici e poi lancia gli eventi su un altro sistema quando trova queste corrispondenze. Il lancio dell'evento è un fattore critico nel tempo per individuare errori o problemi che ne derivano. Questa parte non è negoziabile in termini di design.

I file di registro appartengono a Applicazioni e Sistema operativo; quindi possono essere veloci nella registrazione, di grandi dimensioni e ruotati in base al tempo o alle dimensioni.

Qual è un approccio migliore alla lettura di questi file di registro, rilevando quando cambiano e leggendo dalla loro ultima posizione di lettura mentre scrivevo codice per farlo usando un RandomAccessFile che manteneva l'ultima posizione di lettura per ogni file.

Per gestire file di grandi dimensioni e la registrazione rapida ho fatto questo:

  1. DataProducer - otterrebbe l'ultimo punto di lettura nel file e quindi troverà qualsiasi le modifiche quindi si aggiungono a una coda
  2. DataConsumer - eventuali modifiche alla coda a titolo di dimensioni, farebbe in modo che questo thread si svegli e inizi analizzando tutti gli elementi nella coda per quel file di registro. Cancellare cosa ha analizzato.

Sto cercando alcuni suggerimenti (alla luce di ciò che ho fatto) che potrebbero migliorare il modo in cui gestisco la lettura di un file, e il prendere quando ci sono cambiamenti, e analizzare il file in modo efficiente (considerando dimensioni e rotazione). Il codice o un'API lo faranno.

    
posta Dane Balia 18.01.2013 - 09:01
fonte

1 risposta

1

Sembra un lavoro per Splunk

Probabilmente non vuoi re-inventare la ruota qui. Splunk ha un'opzione gratuita e può fornirti molte funzionalità extra utili che probabilmente avrai bisogno in fondo alla strada.

    
risposta data 18.01.2013 - 15:17
fonte

Leggi altre domande sui tag