Файл настроек производительности для log4j?

Вот мой текущий файл настроек log4j. Являются ли эти настройки идеальными для использования в производстве или есть что-то, что я должен удалить / изменить или изменить? Я спрашиваю, потому что я получаю все мои streamи, зависающие из-за блокировки log4j. Я проверил мои дескрипторы открытых файлов, в которых я использовал только 113.

# ***** Set root logger level to WARN and its two appenders to stdout and R. log4j.rootLogger=warn, stdout, R # ***** stdout is set to be a ConsoleAppender. log4j.appender.stdout=org.apache.log4j.ConsoleAppender # ***** stdout uses PatternLayout. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # ***** Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n # ***** R is set to be a RollingFileAppender. log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=logs/myapp.log # ***** Max file size is set to 100KB log4j.appender.R.MaxFileSize=102400KB # ***** Keep one backup file log4j.appender.R.MaxBackupIndex=5 # ***** R uses PatternLayout. log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %d %c - %m%n #set httpclient debug levels log4j.logger.org.apache.component=ERROR,stdout log4j.logger.httpclient.wire=ERROR,stdout log4j.logger.org.apache.commons.httpclient=ERROR,stdout log4j.logger.org.apache.http.client.protocol=ERROR,stdout 

UPDATE *** Добавление образца дампа streamа из всех моих streamов (100)

 "pool-1-thread-5" - Thread [email protected] java.lang.Thread.State: BLOCKED on [email protected] owned by: pool-1-thread-35 at org.apache.log4j.Category.callAppenders(Category.java:201) at org.apache.log4j.Category.forcedLog(Category.java:388) at org.apache.log4j.Category.error(Category.java:302) 

Log4j 1.2 уязвим для взаимоблокировок, когда toString() создает вложенную регистрацию.

См. Старые старые проблемы, такие как Log4J, могут создавать условия взаимоблокировки (одновременное пожертвование пакетов) и Deadlock с помощью RollingFileAppender .

Он также имеет проблемы с синхронизацией блокировки производительности при большой одновременной нагрузке. Подобно Category callAppenders, синхронизация вызывает java.lang.Thread.State: BLOCKED и Move org.apache.log4j.Category для повторных попыток чтения / записи .

Даже AsyncAppender не свободен от чрезмерных блокировок: AsyncAppender.doAppend () не нуждается в синхронизации, а Deadlock в 1.2.15 вызван classами AsyncAppender и ThrowableInformation . Также будьте осторожны с переполнением AsyncAppender .

Одно из предостережений – всегда ограничивать уровень корневой категории как минимум INFO или выше. Это предотвратило бы регистрацию вызовов от ненужных блокировок, упомянутых выше. Простое ограничение порога приложения недостаточно, поскольку оно учитывается позже. См. Объяснение с аналогией публикации / подписки :

Чтобы ответить на ваш вопрос о том, как порог взаимодействует с категорией, в основном думайте, что это как публикация / подписка. Категория устанавливает то, что публикуется регистратором, пороговое значение устанавливает уровень подписки для приложения.

В случае необходимости вложенные категории интересов могут быть предоставлены более низкие приоритеты.

private static final Logger logger = Logger.getLogger(Foo.class); ли вы Logger для каждого classа, используя стандартный private static final Logger logger = Logger.getLogger(Foo.class); где Foo – class, в котором объявлен логгер? Если у вас есть только один экземпляр Logger во всем приложении, может возникнуть некоторое разногласие, если есть много журналов.

% F:% L оказывает серьезное влияние на производительность. Хотя я не вижу, как они могут вызвать блокировку, я бы предпочел исключить их для производства.

Это выглядит нормально. Я не вижу, как это может привести к блокировке log4j. Может быть, вы можете опубликовать ниспадающий stream вашей проблемы?

  • Включить ведение журнала Hibernate
  • Как вы очищаете буферный файл log4j FileAppender?
  • Настройка RollingFileAppender в log4j
  • Как настроить log4j2 RollingFileAppender?
  • Конфигурирование Log4j Loggers Programmatically
  • Условное ведение журнала с помощью log4j
  • Как настроить log4j с файлом свойств
  • Перенаправить System.out и System.err в slf4j
  • Как указать путь переменной окружения для файла appender в файле конфигурации в log4j
  • Где правильное место для размещения Log4j.properties в проекте Eclipse?
  • Как создать пользовательский аккаунт в log4j2?
  • Давайте будем гением компьютера.