2017-09-29 3 views
0

Je veux mettre en file d'attente le contenu du fichier en utilisant Java.J'ai essayé d'utiliser Tailer et TailerListenerAdapter de Apache commons io. J'ai inclus storm-core-1.1.1.jar dans le classpath pour les dépendances requises. Le programme compile et s'exécute; Mais la méthode « poignée » de TailerListenerAdapter n'est pas appelée du tout et l'exécution est bloqué à l'intérieur du principal method.Following est le code:File Tailing ne fonctionne pas en utilisant TailerListenerAdapter de Apache Commons io

import org.apache.storm.shade.org.apache.commons.io.input.TailerListenerAdapter; 
import org.apache.storm.shade.org.apache.commons.io.input.Tailer; 
import org.apache.storm.shade.org.apache.commons.io.input.TailerListener; 

import java.io.File; 
public class LogTailTest { 

    /** 
    * TailerListener implementation. 
    */ 
    static public class ShowLinesListener extends TailerListenerAdapter { 
     @Override 
     public void handle(String line) { 
      System.out.println(line); 
      System.out.println("inside handle"); 
     } 
    } 

    public static void main(String args[]) { 


     TailerListener listener = new ShowLinesListener(); 
     File file = new File("C:/LogFiles/Radius-log"); 
     System.out.println("inside main"); 
     Tailer tailer = Tailer.create(file, listener); 
     tailer.run(); 

     } 
} 

Répondre

0

Si l'exécution reste dans la principale méthode, puis au moins signifie que il ne s'est pas écrasé. Vous pouvez obtenir un aperçu plus approfondi de ce qui se passe en implémentant d'autres méthodes d'interface TailerListener dans votre show ShowLinesListener. Il existe des méthodes pour gérer le fichier qui n'est pas présent, la rotation des fichiers, les exceptions génériques, etc.