одновременный log4j - PullRequest
7 голосов
/ 22 мая 2011

У меня есть свой собственный механизм ведения журналов, который записывает журналы в отдельный поток с очередью блокировки. Ради использования "стандартного программного обеспечения" я думаю о переходе на log4j.

Я не хочу, чтобы мое высококонкурентное программное обеспечение замедлялось командами журнала, которые записывают все на диск, как некоторые, как эта команда вызывается. Можно ли использовать log4j как мусорную корзину?

Ответы [ 2 ]

7 голосов
/ 23 мая 2011

Log4j - это реализация ведения журнала на большинстве серверов приложений JavaEE, так что это хорошая реклама для его возможностей параллелизма.

Сказав это, я увидел тупик Log4j 1.2 в условиях высокой нагрузки. Небольшое расследование выявило несколько ужасно плохую синхронизацию в исходном коде. По-видимому, это было исправлено в Log4j 1.3, хотя разработка этого процесса замедлилась или вообще прекратилась - я чувствую, что большая часть источника была неисправна.

Однако, если вы свободны в выборе, тогда вам следует рассмотреть Logback вместо духовного преемника Log4j. Это редизайн с нуля, и, вероятно, это лучший вариант для вас.

3 голосов
/ 22 мая 2011

Проверьте асинхронного приложения log4j , оно буферизует сообщения журнала, и они передают их приложениям, используя отдельный поток. Может случиться так, что вы решите, что асинхронное приложение log4j не подходит (вот некоторые жалобы на это) , вы всегда можете сделать своего собственного приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...