![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| 3,14 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 6 Всего: 24 |
Может кого заинтересует данный проект. Суть состоит в следующем, однажды мне совершенно надоело перекомпилировать по часу свой проект, только для того чтоб вставить в определённое место печать Stack Trace-а. Так я взялся за написание проекта, к-ый бы позволял при подгрузке класса добавлять в его методы вызовы неких логиррующих функций.
Вот, собственно, пример: Возьмём обычный HelloWorld:
Подключаем мой jar (advdebug.jar), создаём класс-логгер:
Пишем конфиг для тулзы:
И собственно процес запуска: java -Djava.system.class.loader=advdebug.DebugClassLoader -classpath .;../;../advdebug.jar HelloWorld Как результат, на экран выводится следующее:
Вот архив, к-ый содержит jar-файл для работы. Доку, с описанием параметров конфигурации. и простейшие примеры: http://files.unn.ru/1647856956 А если кому то понадобятся сорцы, то они тут: http://files.unn.ru/9485734334 Это сообщение отредактировал(а) 3,14 - 10.9.2007, 10:21 -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||||||
|
|||||||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
3,14
Очень интересно, гляну. ЗЫ. Сталкивался с такой же задачей. Решил посредством AspectJ. |
|||
|
||||
| Tony |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1159 Регистрация: 3.3.2006 Где: Riga Репутация: нет Всего: 12 |
Классная идея. Если бы либа могла вставлять автоматом takvot
|
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 6 Всего: 24 |
Вызов логгера в catch блоках дописать легко. Вот чтоб туда исключение передавалось - уже сложнее. Нужно посмотреть. Но try/catch блоки уже должны быть в исходно коде. Добавлено @ 13:03 Кинь, пожалуйста, ссылку как этот средствами AspectJ сделать. Это сообщение отредактировал(а) 3,14 - 10.9.2007, 13:05 -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
3,14
Join Points and Pointcuts Добавлено через 4 минуты и 19 секунд Создание аспектов для обработки исключений в AspectJ тоже неплохо реализованы. |
|||
|
||||
| w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Java agents, однако (1.5+). С помощью этого механизма можно добавлять/удалять свои инъекции в любой класс во время исполнения. И никаких побочных эффектов, в отличие от своего системного загрузчика.
Это сообщение отредактировал(а) w1nd - 11.9.2007, 00:05 -------------------- ![]() ![]() |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 6 Всего: 24 |
w1nd, у нас java 1.4 используется. Тут от меня ничего не зависит. Но на будущее обязательно запомню.
Maksym, на сколько я понял, AspectJ опять же выполняет что то вроде компиляции. А мне нужно чтоб положил на сервер конфиги и заработало (на сервере могут стоять разные версии релизов, и перекомпилировать под каждый - не совсем good). -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Да, приложение "затачивается" под аспекты. Похоже, я не уловил нюанса твоей задачи. Значит то что ты сделал тем более интересно! |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 6 Всего: 24 |
w1nd, кинь ссылку на java agents...
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |