Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Типа админ:D, 21 июн 2016.

Статус темы:
Закрыта.
  1. Автор темы
    Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Как можно получать каждую строку из консоли, и превращать эту строку в текст?
    Я пробовал так:
    Код:
    /*
    Импорты
    
    */
    
    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); ?
     
    Последнее редактирование: 21 июн 2016
  2. Хостинг MineCraft
    <
  3. kirill2011s

    kirill2011s Старожил Пользователь

    Баллы:
    103
    System.out и err можно заменить System.setOut
     
  4. Автор темы
    Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Я уже пробовал. Создавай новый OutputStream(), а вставлял его System.setOut(new PrintStream(new OutputStream(){ /* код */ })). Но там есть только write(int b){} . Как вы мне предлагаете превратить цифру в текст?

    Код:
    System.setOut(new PrintStream(new OutputStream(){
    
         @Override
         public void write(int i) throws IOException {
              // КАК МНЕ ЦИФРУ В ТЕКСТ ПРЕВРАТИТЬ!?
         }
            
    }, true));
    
     
  5. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    (char) i?
     
  6. Автор темы
    Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Ну как бы.. Пробовал... Он отдельно символы выводил. Вот только ещё эти символы вообще не были выводом. Рандомный набор букв.
    =========
    {
    2
    f
    gw
    6f
    ]2
    =========
    Что-то типо такого..[DOUBLEPOST=1466510004,1466509865][/DOUBLEPOST][​IMG]
     
  7. kirill2011s

    kirill2011s Старожил Пользователь

    Баллы:
    103
  8. Автор темы
    Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Если честно, я в доках нифига не понимаю. КакиеТО суммари, медтодс суммари..
     
  9. MrTrojan

    MrTrojan Активный участник Пользователь

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    Хоть я не знаю английский, но я почему-то понимаю.
     
  10. Автор темы
    Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Новый вопрос: как привязать хандлер к LogManager.getRootLogger() ?[DOUBLEPOST=1466525631,1466521565][/DOUBLEPOST]Тема закрыта.
     
Статус темы:
Закрыта.

Поделиться этой страницей