0
У меня есть приложение, используя три библиотеки:log4j2 обернут JBoss протоколирования
- первый использует JBoss лесозаготовками
- второй использует протоколирование Apache Commons'
- третий использует непосредственно log4j2 API, если он находится на пути к классам (или log4j , если это не так)
и был настроен для маршрутизации регистрации в log4j 1.2.
Я хочу переключиться на log4j2 из-за проблем с производительностью.
Я удалил log4j из pathpath и добавил log4j2-1.2-bridge, log4j2-core и log4j2-api. Я настроил регистрацию через -Dlog4j.configurationFile с конфигурацией, подобной следующим:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="foo" level="TRACE">
<AppenderRef ref="CONSOLE"/>
</Logger>
<Logger name="foo.bar" level="DEBUG">
<AppenderRef ref="CONSOLE"/>
</Logger>
<Logger name="xxx" level="TRACE">
<AppenderRef ref="CONSOLE"/>
</Logger>
<Root level="DEBUG">
<AppenderRef ref="CONSOLE"/>
</Root>
</Loggers>
</Configuration>
Теперь у меня есть несколько проблем:
- сообщения, поступающие от Apache Commons Logging регистрируются дважды
- Сообщения i18ed по протоколу JBoss (через регистратор, созданный из аннотаций ) не форматируются в соответствии с конфигурацией, но вместо этого использует формат log4j2 по умолчанию. Однако они записываются только один раз.
- Есть несколько не-i18ed обменивались сообщениями с лесозаготовительной JBoss вошли одним конкретным классом, но не все (это действительно странно)
- сообщения, поступающие от прямого использования log4j2 API вошли два три раза
Любые подсказки по их устранению?
Вы используете JBoss Logging только для возможностей i18n? Существует запрос на получение запроса для получения поддержки log4j2 в JBoss Logging, https://github.com/jboss-logging/jboss-logging/pull/9. После этого вы можете использовать JBoss Logging в качестве фасада и log4j2 в качестве менеджера журналов. –
Нет, запись в JBoss используется в библиотеке, которую я использую, и я не могу многое изменить. Я также предпочел бы отказаться от шага с log4j-1.2-bridge. Тем не менее, я не вижу причины для такой проблемы, которую я испытываю при использовании старого API. –