picocli: перенаправить stdout и stderr в регистратор - PullRequest
2 голосов
/ 27 мая 2020

Каков правильный / самый простой способ перенаправить вывод (out / err) из .execute() или .parseArgs() в регистратор (org.slf4j.Logger)?

(Производственные процессы часто выполняются планировщиком с выводом в специальные c файлы журнала приложения. И 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 класс вдохновлен из здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...