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

Совет Русский текст и консоль windows (1.7.2+)

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Andrey96, 8 авг 2014.

  1. Автор темы
    Andrey96

    Andrey96 Активный участник

    Баллы:
    61
    Skype:
    andrey_pon
    Имя в Minecraft:
    XxcasualmanxX
    Казалось бы, всё не сложнее, чем добавить виртуальной машине Java параметр -Dfile.encoding=CP866
    Да, это работает, но log4j подхватывает эту кодировку и использует её не только для вывода в консоль, но еще и для лог файлов. Для кого принципиально, чтобы они оставались в UTF-8, делаем следующее:
    Редактируем log4j2.xml в jar файле сервера.
    Находим нужный Appender:
    <RollingRandomAccessFile name="File" ...>
    <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />
    Нас интересует вторая строка. В интернете об этом не сказано, да и в документации явно не написано, что PatternLayout наследует поле charset от одного абстрактного класса (копался в исходниках).
    Воспользуемся этим:
    <RollingRandomAccessFile name="File" ...>
    <PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" charset="UTF-8"/>
    Всё, теперь наш сервер разговаривает по-русски и принимает русские команды, а лог файлы при этом пишутся в UTF-8. То, что надо.
    Кстати, можно вообще обойтись без -Dfile.encoding и установить кодировку CP866 Аппендеру Console, но тогда сервер не будет воспринимать русский текст во введенных командах, а будет только отображать его в консоли. Кому-то будет достаточно и этого.
     
  2. Хостинг MineCraft
    <

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