|
jndi в log4j
|
|||
---|---|---|---|
#18+
Добрый день Пытаюсь получить путь к файлам логов через jndi, как написано в документации log4j2 Путь должен отдавать WAS (Websphere Application Server). Там все прописано в namespace bindings Однако, получить значение никак не получается. Подебажив класс JndiLookup log4j2, было выявлено, что если в файле log4j2.xml значение для jndi будет указан вот в таком виде:${jndi:cell/persistent/test-jndi-name}, то из was нужное подтянется. Однако, тут есть загвоздка: log4j, формируя строку для lookup, добавляет к cell/persistent/test-jndi-name префикс java:comp/env. И выполняет, соответственно, код: Код: java 1.
И это, вроде, выглядит, логичным, однако в этом случае я получаю ошибку: javax.naming.NamingException - Name comp/env/cell/persistent/test-jndi-name not Found in Context "java:" При этом вот такой код вполне бы отработал нормально: Код: java 1.
Есть, конечно, обходной путь, чтобы log4j не добавлял java:comp/evn - это указать в jndi двоеточие (например, cell/persistent/test:name), так как в этом случае, согласно коду класса JndiLookup jndi останется без изменения: Код: java 1. 2. 3. 4. 5. 6.
Однако, это кажется костылем и я не знаю, насколько правильно создавать такие имена. Хотелось бы понять, почему log4j в данном случае не принимает java:comp/env/cell/persistent/test-jndi-name и работает с cell/persistent/test-jndi-name ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2018, 22:26 |
|
|
start [/forum/topic.php?fid=59&fpage=44&tid=2121945]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
81ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 177ms |
0 / 0 |