我想使用java来尾文件。我已经在类所需的依赖项的类中包括了Storm-Core-1.1.1.jar。编程和运行;但是,根本没有调用pinerlisteneradapter的"句柄"方法,并且执行被卡在主要方法中。遵循代码:
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();
}
}
如果执行停留在主方法中,则至少意味着它没有崩溃。您可以通过在show ShowLinesListener
中实现其他TailerListener
接口的其他方法来获得进一步的见解。有一些方法可以处理不存在的文件,文件旋转,通用异常等。
您不应该直接调用" parer.run()"。而是这样做:
TailerListener listener = new ShowLinesListener();
File file = new File("C:/LogFiles/Radius-log");
System.out.println("inside main");
Tailer tailer = Tailer.create(file, listener);
Thread thread = new Thread(tailer);
thread.setDaemon(true); // optional
thread.start();