将输出(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);
// ...
LoggerWriter
类受here启发的 。