Как настроить jboss 7 для записи журналов в другую папку

Я использую Jboss 7.1.1, и у меня есть следующее определение журнала:

<subsystem xmlns="urn:jboss:domain:logging:1.1">
        <console-handler name="CONSOLE">
            <level name="INFO"/>
            <formatter>
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
        </console-handler>
        <periodic-rotating-file-handler name="FILE">
            <formatter>
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="server.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <size-rotating-file-handler name="ACEII">
            <level name="DEBUG"/>
            <formatter>
                <pattern-formatter pattern="%z{utc}%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="ACEII.log"/>
            <rotate-size value="10M"/>
            <max-backup-index value="10"/>
            <append value="true"/>
        </size-rotating-file-handler>
        <logger category="ace2" use-parent-handlers="false">
            <level name="DEBUG"/>
            <handlers>
                <handler name="ACEII"/>
            </handlers>
        </logger>
        <logger category="com.arjuna">
            <level name="WARN"/>
        </logger>
        <logger category="org.apache.tomcat.util.modeler">
            <level name="WARN"/>
        </logger>
        <logger category="sun.rmi">
            <level name="WARN"/>
        </logger>
        <logger category="jacorb">
            <level name="WARN"/>
        </logger>
        <logger category="jacorb.config">
            <level name="ERROR"/>
        </logger>
        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
    </subsystem>

Я хотел бы, чтобы журнал ACE записывался в другую папку, поэтому я попытался указать разные значения в атрибуте relative-to, но, похоже, ничего не работает, есть идеи, как это сделать?


person Tomer    schedule 28.03.2012    source источник


Ответы (5)


Вам нужно убрать relative-to и ввести абсолютный путь в атрибуте path.

    <size-rotating-file-handler name="ACEII">
        <level name="DEBUG"/>
        <formatter>
            <pattern-formatter pattern="%z{utc}%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>
        </formatter>
        <file path="/var/log/myLogDir/ACEII.log"/>
        <rotate-size value="10M"/>
        <max-backup-index value="10"/>
        <append value="true"/>
    </size-rotating-file-handler>

Вы также можете использовать свой собственный относительный путь, добавив путь в конфигурацию.

В CLI вы просто выполните: /path=my.log.dir:add(path="/var/log")

Если вы просто хотите отредактировать xml, добавьте следующее.

<paths>
    <path name="my.log.dir" path="/var/log"/>
</paths>

Сами пути могут иметь относительный путь, если вы хотите, например, определить определенные каталоги в каталоге журнала по умолчанию.

После того, как вы определили свой путь, вы можете использовать имя, которое вы дали пути в атрибуте relative-to.

person James R. Perkins    schedule 28.03.2012
comment
Спасибо, но абсолютный путь недостаточно хорош, как вы можете себе представить, и я попробовал его с переменной среды, но безуспешно. Есть ли способ определить мой собственный путь, например «jboss.server.log.dir», чтобы я мог установить «относительно» этого пути? Я попытался использовать «wrapper.app.parameter» и «wrapper.java.additional», чтобы определить этот путь, но безуспешно (я использую службу оболочки java) - person Tomer; 29.03.2012
comment
См. выше. Я добавил инструкции о том, как это сделать. - person James R. Perkins; 29.03.2012
comment
Еще раз спасибо, это действительно прогресс в том, что мне нужно, но опять же, похоже, что Env. переменные. - person Tomer; 01.04.2012
comment
Вы можете использовать любое системное свойство и добавить замену в путь к файлу следующим образом: ‹file path=${myserverlog.dir}/server.log/> Добавьте новое системное свойство -Dmyserverlog.dir. - person Vinodh Ramasubramanian; 23.01.2014

Это прекрасно работает для меня.

domain.sh -Djboss.server.log.dir="my custom logs dir"
person Pavel Gutsa    schedule 18.10.2013

Знайте, что это старый вопрос, но он по-прежнему актуален для JBOSS EAP 7.

Я нашел ответ Джеймса здесь проницательным - https://developer.jboss.org/wiki/Wildfly82LogPathChange

Я смог отредактировать файл standalone.conf и указать там собственный каталог ведения журнала.

Это также файл domain.conf, который можно редактировать для режима домена.

Все, что нужно, это добавить в конец файла следующее:

#Specify the log dir
JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=my custom logs dir"

Насколько я понимаю, для Windows файлы .bat могут обновляться вместо файлов .conf.

person Dale C    schedule 14.07.2017

Нашел ответ :)

Я использую оболочку службы Java для установки Jboss в качестве службы Windows, и эта служба имеет файл конфигурации, расположенный по определенному пути, поэтому я заметил, что если я удалю относительный атрибут, он записывает журналы в папку, где находится файл конфигурации.

Все, что мне нужно было сделать, это определить так:

<size-rotating-file-handler name="ACEII">
            <level name="DEBUG"/>
            <formatter>
                <pattern-formatter pattern="%z{utc}%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>
            </formatter>
            **<file path="../Log/ACEII.log"/>**
            <rotate-size value="10M"/>
            <max-backup-index value="10"/>
            <append value="true"/>
        </size-rotating-file-handler>

И это помогло мне.

person Tomer    schedule 01.04.2012
comment
Хотя это именно то, о чем вы спрашивали. Также поведение, которое вы видите, не гарантируется. ../ может быть где-то еще, кроме каталога конфигурации. - person James R. Perkins; 02.04.2012

Это то, что я использую; Затем я обрабатываю ротацию журнала с помощью logrotate:

    <file-handler name="FILE" autoflush="true">
        <formatter>
            <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
        </formatter>
        <file relative-to="jboss.server.log.dir" path="server.log"/>
        <append value="true"/>                                                                                                                             
    </file-handler>

Очевидно, вы можете изменить это в соответствии с вашими потребностями.

person Community    schedule 14.05.2014