Асинхронный проблема конфигурации журнала log4j2 официальные документы и разъяснения

Конфигурация и демо

Полностью открытый метод

Добавить параметры запуска -DLog4jContextSelector = org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
начать основные параметры немного поговорке:
официальную документацию http://logging.apache.org/log4j/2.x/manual/async # AllAsync .html Ключ -Dlog4j2.contextSelector = ...
но если вы лично эксперименты, или лично использовал, вы можете заметить проблему, просто использовать с версией:
-DLog4jContextSelector = org.apache.logging .log4j.core.async.AsyncLoggerContextSelector // == == полная версия поддерживает
версию поддерживает -Dlog4j2.contextSelector = org.apache.logging.log4j.core.async.AsyncLoggerContextSelector // == == 2.10.0 позже

Относящийся код (2.10.0 позже):
См org.apache.logging.log4j.util.PropertiesPropertySource и
org.apache.logging.log4j.util.PropertiesUtil.Environment
среды Есть три набора конфигурационных данных, другой ключ, те же семантика услуг:

literal
{java.runtime.name=Java(TM) SE Runtime Environment}


normalized
{log4j2.javaRuntimeName=Java(TM) SE Runtime Environment} key 是log4j2.前缀 加上驼峰形式变量

tokenized
{[java, runtime, name]=Java(TM) SE Runtime Environment}  key是list

Способ смешивания двух синхронных асинхронный

<!-- 使用异步日志时,启用如下配置,异步配置默认不打印location。此种方法无需配置JVM启动参数。 -->
<asyncRoot level="debug">
    <AppenderRef ref="Console" />
</asyncRoot>

Некоторые замечания

  • Информация местоположения по умолчанию не печатаются, например, номера строк, классов, методов и тому подобные. Нам нужно добавить , если это необходимо includeLocation="true", но согласно официальному заявлению будет 30-100 раз медленнее.
  • Асинхронный время, если журнал печати в реальном значении поля объекта, указанного в информации журнала изменилось в таких «привет {}», user.name это. Это не повлияет на точность журнала печати. Ответ: нет, потому что log4j сделал механизм моментального снимка.

Malpractice асинхронный журнал

Асинхронный журнал не только преимущества без каких-либо недостатков, официальный дают некоторые сцены (НЕДОСТАТКИ) не используется:

  • Обработка исключений. Даже обработчик исключений не может охватить все случаи.
  • В некоторых случаях, такие как MapMessage и StructuredDataMessage этой проблемы, не входить время снимки избежать асинхронной печати информации может измениться
  • CPU в нескольких случаях, например, для процессора
  • Печать войти гораздо быстрее , чем appenderпропускная способность . В это время, асинхронный и не может решить эту проблему, необходимо использовать более быструю Appender.

рекомендация

отwww.cnblogs.com/simoncook/p/10964076.html