Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > организовать подобие логгера


Автор: maddoc 11.6.2010, 00:38
Привет.
Подскажите, как организовать подобие логгера. Есть приложение, в котором около 50 потоков. Нужно создать логгер (желательно 1) для логгирования поведения потоков.
Спасибо!

Автор: Skipy 11.6.2010, 09:24
А в чем проблема? Создаете один статический логгер и используете. Потоки различаете по имени. Можно по диагностическому контексту. Вообще про логгеры можно почитать тут: http://www.skipy.ru/useful/logging.html.

Автор: Peter 11.6.2010, 12:00
Мы для этих целей используем http://logging.apache.org/log4cxx/

Автор: maddoc 11.6.2010, 15:05
парни, мне нужен свой логгер.

Skipy, 
Если я создам статический логгер, то при работе с множеством потоков, не будет ли зависания? в приложении  есть потоки которые работают долго, работа с БД и видео.

Автор: pathfinder 11.6.2010, 17:14
Разбей логгер на две части: frontend и backend. C frontend-ом у тебя будут взаимодействовать другие части твоего приложения. Однако сам frontend не будет заниматься логгированием, а будет лишь складывать записи лога в очередь. Backend в отдельном потоке будет реально заниматься логгированием, читая записи лога из очереди и сохраняя их в БД или еще куда-нибудь. Естественно используемая очередь должна быть синхронной.

Производительность такого логгера будет определятся скоростью добавления очередного элемента в очередь.

Автор: Skipy 16.6.2010, 10:16
Цитата(maddoc @ 11.6.2010,  15:05)
Skipy, 
Если я создам статический логгер, то при работе с множеством потоков, не будет ли зависания? в приложении  есть потоки которые работают долго, работа с БД и видео.

Все зависит не от количества потоков, а от количества данных, которые в логгер выводятся. В крайнем случае можно организовать асинхронный аппендер. В самом крайнем - написать свой (тоже асинхронный).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)