我编写了一个Java工具,用Spring boot
解析服务器日志。最终,该应用程序将转换为JAR
文件。什么时候,我会运行像
java -cp "parser.jar" com.ef.Parser --startDate=2017-01-01.13:00:00 --duration=hourly --threshold=100
该工具将找到从2017-01-01.13:00:00到2017-01-01.14:00:00(一小时)开始发出超过100个请求的任何IP,并将它们打印到控制台并将它们加载到另一个MySQL表,其中包含对其被阻止的原因的评论。
提供了应用程序结构,
spring boot Parser.java
文件就像,
@EnableTransactionManagement
@SpringBootApplication(scanBasePackages = {"com.ef"}, exclude = JpaRepositoriesAutoConfiguration.class)
public class Parser implements CommandLineRunner {
public static void main(String[] args) throws Exception {
SpringApplication application = new SpringApplication(Parser.class);
application.run(args);
}
@Override
public void run(String... strings) throws Exception {
exit(0);
}
}
让我们想象一下我在parser.jar
的文件夹中,然后运行前面提供的命令。在这种情况下,如何删除变量中的startDate
,duration
和threshold
参数?
显然,我可以编写方法来解析来自startDate
的{{1}}或duration
,但是,我在这个场景中有点困惑。