Навигация

воскресенье, 11 декабря 2011 г.

MLogger - ведение логов в Java программах.

Доброго времени суток. На днях я решил написать свою систему ведения логов, при этом на Java. Я знаю что в Java есть Logger, хотя не знаю на сколько он удобен, так как ни разу не использовал. И вот вчера я начал его писать, а сегодня появилась достаточно работоспособная версия.
Возможно, мой логгер и менее быстр или хуже стандартного, но польза от его написания есть. Для начала это опыт. И дело не в том что я еще сколько то часов писал на Java, а в том, что за это время я использовал некоторые новые для меня технологии.
Первое, я начал использовать Unit-тесты. Я не раз слышал о них и их пользе в разработке, особенно больших проектов. И это реально удобно. Я думал что с ними придется повозиться, но все оказалось просто. Использовал я кончено Junit4. Если кому интересно, прочтите Cookbook по этой ссылке, там все очень просто. А возможно я завтра переведу его на русский(идея для нового сообщения).
Второе, многопоточность. До этого, мне не приходилось писать многопоточные программы. Но логгер должен работать параллельно основной программе и писать в лог-файл, когда его об этом просят. Было несколько проблем, но почти все они решены. Единственное, что мне не нравиться в моем коде, так это Loop. Сейчас мой логгер живет пока его не "убьют", в цикле каждые 200мс проверяется появились ли сообщения в кэше, если да, то они все пишутся подряд, когда они заканчиваются, логгер опять ждет 200мс. Если убрать 200милисекундную спячку, то постоянно нагружается процессор, что очень плохо. Но в этом варианте сообщения записываются не сразу после их появления.
Логгер достаточно легко управляется. Вы создаете объект типа MLoggerRunnable(имя может скоро поменяться), создаете Thread с ним, запускаете этот Thread и все. После этого, вы вызываете методы MLoggerRunnable для записи сообщения. Небольшой пример использования:
Вот ссылка на репозиторий. А пока я заканчиваю писать это сообщение. И пока не забыл, вопрос. На тесте, логгер показал скорость в 33.3 тысячи сообщений в секунду. Это их создание и запись на диск. Испытывалось на следующем железе и при нагрузке на систему другими программами, пока рано тестировать по нормальному:
CPU: Intel Pentium D 805
Memory: 2GB DDR2 PC4200
HDD: Samsung SATA 160GB, 8MB Кэша.
Просто интересно, ведь эта цифра пока ничего не значит.
На этом все. Всем удачи, до скорых встреч.

Комментариев нет:

Отправить комментарий