Ситуация: мы используем SLF4j и Log4j 2 с асинхронными приложениями. Проблема в том, что мы также используем JSF, который использует java.util.Logging
. Я вижу все виды отвратительных предупреждений о производительности в отношении использования jul-to-slf4j
из-за того, что вы не можете просто выбросить java.util.Logging
, потому что он находится в JDK, и потому что... вот что документация на http://www.slf4j.org/legacy.html говорит:
"... Следовательно, преобразование jul в SLF4J может серьезно увеличить стоимость отключенных операторов ведения журнала (в 60 раз или 6000%) и ощутимо повлиять на производительность включенных операторов журнала (общее увеличение на 20%). По состоянию на logback версии 0.9.25, с помощью LevelChangePropagator можно полностью устранить 60-кратные накладные расходы на перевод для отключенных операторов журнала."
Обратите внимание, что несмотря ни на что, с SLF4J + java.util.Logging
вы застряли с падением производительности на 20%, но вы можете отказаться от 60-кратного увеличения, используя последнюю версию.
20 % неприемлемы.
Другие идеи приветствуются и поощряются, но решение, которое я имею в виду, состоит в том, чтобы просто не консолидировать java.util.Logging
. Вместо этого используйте отдельный файл конфигурации, который указывает на тот же файл журнала, что и все остальное. Кто-нибудь знает или знает, где я могу найти пример того, как это сделать, предполагая, что это не будет означать конец всего творения?
Если есть лучший способ, я открыт для него.