Java 以编程方式配置Filebeat托运人

Java 以编程方式配置Filebeat托运人,java,shell,filebeat,Java,Shell,Filebeat,如何以编程方式创建类似Filebeat的shipper,它将我的日志从客户端服务器发送到远程logstash服务器 我不熟悉ELK和log4j,我正在尝试创建Daemonize java程序或shell脚本,它将逐行读取我的日志文件,并将所有行(以及任何新的行)发送到定义的logstash服务器 我能够逐行读取文件,但它一达到EOF就关闭了 此外,我想让它成为一个守护进程,它将持续监视日志文件,并通过TCP将每一行发送到Logstash FileInputStream fstream = new

如何以编程方式创建类似Filebeat的shipper,它将我的日志从客户端服务器发送到远程logstash服务器

我不熟悉ELK和log4j,我正在尝试创建Daemonize java程序或shell脚本,它将逐行读取我的日志文件,并将所有行(以及任何新的行)发送到定义的logstash服务器

我能够逐行读取文件,但它一达到EOF就关闭了

此外,我想让它成为一个守护进程,它将持续监视日志文件,并通过TCP将每一行发送到Logstash

FileInputStream fstream = new FileInputStream("textfile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));

String strLine;
while ((strLine = br.readLine()) != null)   {

  System.out.println (strLine);
}
br.close();
有人能给我指路吗?

现在

Filebeat确实存在,无需编程,只需使用beat包即可

现在

Filebeat确实存在,无需编程,只需使用beat包即可


protip:切勿同时在循环头中使用赋值和比较。这就是大多数人所说的“坏代码”。将其拆分并比较循环头中的值,其他一切都会导致编程错误,这让你认为几乎所有编译的东西都是“好的”实践——事实并非如此。习惯于“最佳实践”,不惜一切代价避免错误,并使用清晰、简洁、一致的编程范例-例如:您还应该始终初始化变量。谢谢,我将确保不使用这些,但此代码仅适用于我想要实现的任务。仅是。。。什么?protip:不要在循环头中同时使用赋值和比较。这就是大多数人所说的“坏代码”。将其拆分并比较循环头中的值,其他一切都会导致编程错误,这让你认为几乎所有编译的东西都是“好的”实践——事实并非如此。习惯于“最佳实践”,不惜一切代价避免错误,并使用清晰、简洁、一致的编程范例-例如:您还应该始终初始化变量。谢谢,我将确保不使用这些,但此代码仅适用于我想要实现的任务。仅是。。。什么?