如何在Log4j中使用apache commons cli?

时间:2018-11-08 23:16:03

标签: java log4j apache-commons

我可以使用apache commons cli编写这种代码:

HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("myapp", options, true);

这将打印所有命令行选项及其描述。

我想使用Log4j之类的记录器进行打印,但我不知道如何,HelpFormatter类中只有printHelp函数。

我不想过度设计,有没有标准的方法?

1 个答案:

答案 0 :(得分:1)

使用将printHelp作为第一个参数的两个PrintWriter方法中的一个,给它一个PrintWriter来包装一个StringWriter,然后将结果提供给任何日志记录您要使用的API。

示例

try (StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw)) {
    HelpFormatter f = new HelpFormatter();
    f.printHelp(pw, f.getWidth(), "myapp", null, options,
                f.getLeftPadding(), f.getDescPadding(), null, true);
    pw.flush();
    logger.info(sw.toString());
}