Указание местоположения файла журнала в Websphere независимым от платформы способом - PullRequest
4 голосов
/ 03 сентября 2010

При использовании Log4J RollingFileAppender в Websphere 7.0, как я могу указать местоположение каталога журналов в файле log4j.properties, т.е. выбрать переменную LOG_ROOT Websphere?

Ответы [ 2 ]

4 голосов
/ 14 сентября 2010

У вас есть возможность указать пользовательское свойство JVM, которое может использовать переменные WebSphere.

Свойство JVM Custom можно использовать в ваших log4j.properties.

Найдите ниже несколько инструкций по достижению того же самого:

В консоли администратора путь будет:

Серверы приложений> Имя вашего сервера> Определение процесса> Виртуальная машина Java> Пользовательские свойства

Свойство Customer может использовать переменную WebSphere в качестве значения для нашего пользовательского свойства - KeyForMyCustomProperty. Переменная WebSphere будет использовать стандартный шаблон: $ {}

Eg $ {MY_VARIABLE} .

Файлы свойств log4j могут получить доступ к этому пользовательскому свойству через

log4j.appender.messageAppender.File = * +1019 * $ {KeyForMyCustomProperty} / Message.log

Этот подход не прост, но достигает желаемых результатов. Вы можете использовать тот же ключ, что и переменная WebSphere для настраиваемого свойства JVM, тогда он будет выглядеть так, как если бы переменная WebSphere использовалась в log4j.properties

НТН Manglu

1 голос
/ 11 сентября 2010

Конечно, было бы тривиально просто написать собственный подкласс RollingFileAppender, который программно определяет значение переменной LOG_ROOT независимым от платформы способом.

Скорее всего, потребуется всего около десятка строк кода, если это так. Затем проследите,

    <appender name="CustomAppender" class="path.to.your.CustomAppender">
            <param name="File" value="fileNameOnly.out" />
            <param name="Append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%m%n" />
            </layout>
    </appender>

и пусть подкласс принимает параметр File, получает путь LOG_ROOT и добавляет его к имени файла перед вызовом методов суперкласса.

Надеюсь, это поможет,

-gMale

...