Помогите Перехватить вывод консоли в String

Статус
Закрыто для дальнейших ответов.

Типа админ:D

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Qamulex
Как можно получать каждую строку из консоли, и превращать эту строку в текст?
Я пробовал так:
Java:
/*
Импорты

*/

public class ConsolePointLogger extends JavaPlugin {

    @Override
    public void onEnable(){
        Bukkit.getLogger().addHandler(new LogHandler());
    }

    public static void logWrite(final String log){
        /* */
    }

}

public class LogHandler extends Handler {

    @Override
    public void close() throws SecurityException {}

    @Override
    public void flush() {}

    @Override
    public void publish(LogRecord logRecord) {
        ConsolePointLogger.logWrite(logRecord.getMessage());
    }
}

Этот код выводил только некоторые строчки(наверное потому, что некоторые плагины использут System.out или System.err для вывода в консоль)

Можно ли как-то перехватить вывод консоли, и текст, который был выведен, отправить в метод logWrite(String log); ?
 
Последнее редактирование:
System.out и err можно заменить System.setOut
Я уже пробовал. Создавай новый OutputStream(), а вставлял его System.setOut(new PrintStream(new OutputStream(){ /* код */ })). Но там есть только write(int b){} . Как вы мне предлагаете превратить цифру в текст?

Java:
System.setOut(new PrintStream(new OutputStream(){

     @Override
     public void write(int i) throws IOException {
          // КАК МНЕ ЦИФРУ В ТЕКСТ ПРЕВРАТИТЬ!?
     }
        
}, true));
 
Ну как бы.. Пробовал... Он отдельно символы выводил. Вот только ещё эти символы вообще не были выводом. Рандомный набор букв.
=========
{
2
f
gw
6f
]2
=========
Что-то типо такого..
Ru4Jtov-YwM.jpg
 
Новый вопрос: как привязать хандлер к LogManager.getRootLogger() ?
Тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх