picocli :将 stdout 和 stderr 重定向到记录器

Kap*_*Lin 5 picocli

从记录器 ( ) 重定向输出 (out/err).execute()或将输出重定向到记录器 ( ) 的正确/最简单方法是什么?.parseArgs()org.slf4j.Logger

(生产过程通常由调度程序执行,并输出到特定于应用程序的日志文件。并且 stdout/err,如果不重定向,就会转储到调度程序/服务器日志中 - 这是不合适的。因此出现了这个问题。)

我有这样的事情:

Logger logger = LoggerFactory.getLogger(MyApp.class);
    // ...
    new CommandLine(new MyApp())
      .setOut(new LoggerWriter(logger, Level.INFO)
      .setErr(new LoggerWriter(logger, Level.ERROR)
      .execute(args);
    // ...
Run Code Online (Sandbox Code Playgroud)

课堂LoggerWriter灵感就来自这里