Перенаправить вывод (в файл) из зависимости Maven в Java
В своем проекте я работаю с фреймворком HeidelTime , который я включил в качестве зависимости Maven. Эта структура очень многословна, поэтому я хотел бы перенаправить ее вывод в файл (но не все результаты моего приложения). Ограничения следующие:
- HeidelTime использует регистратор (Log4J), поэтому я не могу просто перенаправить стандартный вывод в файл.
- Я не могу получить доступ к регистратору, потому что он принадлежит основному классу (
HeidelTimeStandalone.java
). - Я включил HeidelTime в свой проект как зависимость от Maven, и я предпочитаю оставить его как есть (даже если бы я мог загрузить код и напрямую изменить исходный код, чтобы сделать регистратор общедоступным ...)
- Наконец, я не хочу просто перенаправлять все выходы (
java -jar myApplication.jar > file.txt
), потому что я хотел бы сохранить свой стандартный вывод отдельно от вывода HeidelTime ...
Есть ли у кого-нибудь идея перенаправить вывод HeidelTime в файл? Надеюсь, это, по крайней мере, возможно!
1 ответ
Отключить регистратор heideltime можно так (взято из https://github.com/HeidelTime/heideltime/issues/86)
HeidelTimeStandalone heidelTime = new HeidelTimeStandalone();
java.util.logging.logger htLogger = java.utillogging.LogManager.getLogManager().getLogger("HeidelTimeStandalone");
htLogger.setLevel(java.util.logging.Level.OFF);
heidelTime = new HeidelTimeStandalone(
Language.ENGLISH,
DocumnetType.NARRATIVES,
OutputType.TIMEML,
"./config.props",
POSTagger.NO);