Вопрос или проблема
Я использую jboss-as 7.2. Я пытаюсь настроить все файлы журналов так, чтобы они попадали в /var/log/jboss-as, но только консольный лог попадает туда. Я использую скрипт init.d, предоставленный с пакетом, и он вызывает standalone.sh. Я пытаюсь избежать изменения скриптов запуска.
Я пробовал добавить JAVA_OPTS=”-Djboss.server.log.dir=/var/log/jboss-as” в мой файл /etc/jboss-as/jboss-as.conf, но скрипт init.d не передает JAVA_OPTS в standalone.sh, когда его вызывает.
В документации также говорится, что я должен быть в состоянии указать путь через XML с помощью следующей строки в standalone.xml:
<path name="jboss.server.log.dir" path="/var/log/jboss-as"/>
Однако не указано, куда в файле это вставить. В каждом месте, где я пытаюсь это вставить, JBoss выдает ошибку при запуске, говоря, что он не может правильно обработать файл standalone.xml.
Вы можете указать путь к вашим файлам журналов через файл standalone.sh
. Если вы посмотрите на подсистему org.jboss.as.logging
, вы увидите конфигурацию там.
Ответ или решение
Чтобы изменить директорию для логирования в JBoss AS 7.2, вам нужно внести изменения в конфигурацию самой системы. Рассмотрим несколько методов, которые помогут вам решить эту задачу, без необходимости редактировать стартовые скрипты.
Изменение директории логирования через standalone.xml
-
Откройте файл
standalone.xml
:
Этот файл находится в каталоге конфигурации JBoss, обычно по пути:/path/to/jboss-as/standalone/configuration/standalone.xml
Замените
/path/to/jboss-as/
на фактический путь к вашей установке JBoss. -
Найдите подсистему
logging
:
Внутри файлаstandalone.xml
найдите секцию, которая начинается с:<subsystem xmlns="urn:jboss:domain:logging:1.1">
-
Добавьте или измените путь для логов:
Внутри<subsystem>
можно добавить элемент<path>
:<extensions> ... </extensions> <subsystem xmlns="urn:jboss:domain:logging:1.1"> <console-handler name="CONSOLE"> ... </console-handler> <periodic-rotating-file-handler name="FILE" autoflush="true"> <formatter> <named-formatter name="PATTERN"/> </formatter> <file name="jboss.server.log.dir" path="/var/log/jboss-as/server.log"/> ... </periodic-rotating-file-handler> ... <path name="jboss.server.log.dir" path="/var/log/jboss-as"/> </subsystem>
Убедитесь, что вы добавили / изменили этот элемент внутри уже существующей секции
<subsystem>
. Если файл не позволяет сохранить изменения и при перезапуске JBoss выдает ошибку, проверьте правильность XML-синтаксиса (закрывающие теги, вложенность и т.д.). -
Перезапустите JBoss:
После внесения изменений перезапустите сервер JBoss, чтобы нововведения вступили в силу.
Изменение с помощью JAVA_OPTS
Как вы уже отметили, переменная окружения JAVA_OPTS
в jboss-as.conf
не передается в standalone.sh
. Однако, возможно, вы сможете воспользоваться следующим способом:
-
Редактируйте скрипт инициализации (если это возможно):
Если у вас есть возможность изменить инициализационный скрипт, попробуйте добавить следующую строку:JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=/var/log/jboss-as"
Это позволит JBoss использовать заданный вами путь.
-
Проверьте права доступа к директории:
Убедитесь, что пользователь, под которым запускается JBoss, имеет необходимые права доступа к/var/log/jboss-as
. Если нет, выполните команду:sudo chown -R jboss:jboss /var/log/jboss-as
Замените
jboss:jboss
на правильную учетную запись пользователя, под которой работает ваш сервер JBoss.
Заключение
Настройка логирования в JBoss AS 7.2 может быть выполнена несколькими способами, однако изменение конфигурационного файла standalone.xml
является наиболее рекомендуемым вариантом. Это позволяет легче поддерживать и управлять настройками в будущем. Если вы столкнетесь с проблемами на этапе редактирования XML-файла, всегда проверьте синтаксис и соответствие структуре. Успешной настройки!