получить список активных system.out printstreams - PullRequest
0 голосов
/ 06 июня 2018

Я пытался использовать System.out.println, чтобы помочь с отладкой, и обнаружил, что это не вывод на консоль.При проверке я обнаружил, что моя программа создала 4 выходные консоли (одну для процессов БД Java, одну для сервера БД, одну для отладки программы и одну для вывода программы).Я нашел ожидаемое println в неожиданной консоли - вывод сервера БД.Я хотел бы получить контроль над этими выходами.Я ожидал, что у класса System будет поле списка активных выходных консолей (printstreams), что-то вроде:

 ArrayList<PrintStream> getActivePrintOutputs() 

Но я его не вижу.Как мне их получить?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

System не имеет понятия о нескольких выходных потоках, кроме указанных в out и err, и вы можете получить к ним доступ, просто сославшись на System.out и System.err соответственно.

Если естьесли используются другие консоли или выходные потоки, они должны быть созданы другими точками в вашем коде (или другими точками в коде библиотеки, который вы используете.)

0 голосов
/ 06 июня 2018

Обычно у вас есть только один активный System.out выходной поток, поэтому у системы нет причин поддерживать список.

Если вы хотите отследить все созданные PrintStreams, вы можете использовать инструментарий для отслеживания ихсоздание или установка точки останова в конструкторе для класса и отладка вашей программы.

ПРИМЕЧАНИЕ. Это нормально для программы, которая создает несколько файлов журналов для различных целей, и это могут быть PrintStreams, о которых вы думаете.

...