поиск

FirebugTarget — показать то, что скрыто

Намусорил: Алексей «Vooparker» Аникутин
В категории: ActionScript 3, Flex 2, Инструменты

Началась история с того, что я так и не смог привыкнуть к использованию trace() во Flex Builder’e. А после того, как перешел на разработку во FlashDevelop, я вообще перестал пользоваться trace’ом, и если возникала необходимость «показать то, что скрыто» прибегал к помощи Alert.show(). Но сами понимаете, с таким подходом далеко не уйдешь. Поэтому я решил написать свой простенький логгер, но не успел, его уже написали до меня, и при этом наделили весьма неплохим функционалом.

И так, пакет mx.logging.* содержит все, что нужно для организации логгинга в вашем приложении. С содержимым пакета и с тем, как организовать логгинг, можно ознакомиться в ActionScript 3.0 Language and Components Reference и в книге Building and Deploying Flex 2 Applications официальной документации по Flex 2. Скажу только одно, что за обработку сообщений логгера должны отвечать наследники класса mx.logging.AbstractTarget, например, mx.logging.targets.LineFormattedTarget, который предоставляет возможности по форматированию сообщения логгера.

Ну что ж, писать свой логгер мне не пришлось (смогу поспать лишний час – другой =)), мне достаточно будет написать свой таргет. Остается вопрос, куда этот таргет будет вываливать сообщения логгера? И тут я вспомнил про консольку Firebug. Firebug, если вдруг кто не знает, - это расширение для Firefox, предназначенное в первую очередь для отладки JavaScript, а также обладающее и другим не менее полезным функционалом. Проще говоря — это мастхэв.

Дело за написанием своего таргета не стало. Использовать LineFormattedTarget в качестве надкласса я не стал, а решил наследоваться от AbstractTarget. В результате у меня получился FirebugTarget, который, несмотря на то, что наследуется не от LineFormattedTarget, обладает теми же возможностями по форматированию сообщений.

В итоге я получил весьма неплохой, на мой взгляд, способ «подсмотреть то, что скрыто». Если вам это затея показалась интересной, то вы можете посмотреть скриншот и скачать исходники, чтобы посмотреть на FirebugTarget в действии.

Легкой вам отладки!



Kомментариев - 11 к «FirebugTarget — показать то, что скрыто»

Юрий Яровой [28 апреля, 2007 в 18:32]

Все таки хочу показать, как пользоваться логгером и FirebugTarget в ActionScript.

package {

	// Импортируем нужные классы.
	import mx.logging.ILogger;
	import mx.logging.Log;
	import com.yarovoy.vooparker.logging.targets.FirebugTarget;

	public class FirebugTargetASTest {

		public function FirebugTargetASTest() {
			initLogging();
			testLogging();
		}

		/**
		 * Инициализирует процесс логгинга.
		 */
		public function initLogging():void {
			// Будем использовать логгер с именем "TestLogger".
			var log:ILogger = Log.getLogger("TestLogger");
			// Создаем цель-представление
			// для отображения сообщений логгера.
			var target:FirebugTarget = new FirebugTarget();
			// Подписываем представление на сообщения логгера.
			target.addLogger(log);
		}

		/**
		 * Тестирует процесс логгинга.
		 */
		public function testLogging():void {
			Log.getLogger("TestLogger").debug("Это сообщение, предназначенное для дебага.");
			Log.getLogger("TestLogger").info("Это информационное сообщение.");
			Log.getLogger("TestLogger").error("Это сообщение об ошибке.");
			Log.getLogger("TestLogger").warn("Это предупреждение.");
			Log.getLogger("TestLogger").fatal("Фатальное действие приложения.");
		}

	}
}
A.V.Kozlovskij [22 июня, 2007 в 13:45]

Очень, очень, очень круто! Удобно! Спасибо! :)

rost [10 июля, 2007 в 21:31]

Реальный крутняк!

Vooparker [10 июля, 2007 в 22:23]

Спасибо. Очень приятно, что таргет пришелся по вкусу кому-то еще, кроме его автора :)

Constantiner [11 июля, 2007 в 01:07]

Да, отлично. Тоже полезная вещь. Я, кстати, давно привык пользоваться XPanel от Faratasystems. Я про него год назад даже писал. Тоже очень удобная штука.

Посмотрю как оно с Firebug :)

janvarev [22 июля, 2007 в 11:59]

Очень приятная вещь! У меня в CMS использовалась подгрузка Flex-модулей, все думал, как же отлаживать-то.

Мой рубль в копилку: написал простенький статический класс, который позволяет получать доступ к FirebugTarget без видимой инициализации. Достаточно написать

FirebugDebug.logger.info("Hello, world!");

Класс (и библиотека под Flex) лежит здесь: http://janvarev.ru/FirebugDebugLib

FirebugDebugLib 1.0 на Лаборатория Январева [22 июля, 2007 в 12:13]

[...] Простая библиотека для отладки на AS3 с использованием FirebugTarget (Исходная статья от автора FirebugTarget). [...]

Constantiner [22 июля, 2007 в 16:12]

Кстати, для отладки модулей вполне можно пользоваться дебаггером. Простой способ описан тут.

Garbage Collector » Архив » FirebugTarget и FirebugConsole [24 июля, 2007 в 11:39]

[...] опубликовывал исходники FirebugTarget, я всего на всего хотел поделиться своим опытом [...]

Vooparker [24 июля, 2007 в 11:42]

2Janvarev: скрывая доступ к инициализации FirebugTarget мы лишаемся возможности форматировать сообщения логгера, что не есть хорошо. Изначально FirebugTarget был сделан как представление для логгера, и мне кажется не совсем удачным решение создавать отдельный логгер для одного таргета.
Хотя я на самом деле изначально заложил лишнее в FirebugTarget и разумнее было выделить два класса, один должен отвечать за отправку сообщений в консоль, а второй - за непосредственную обработку сообщений логгера. Что собственно и было сделано.
Еще раз оговорюсь, FirebugTarget не является (и не может являться) полноценным отладчиком, это всего лишь интсрумент (для кого-то удобный), чтобы “показать то, что скрыто”.

SFlexDebugger - консоль для дебагга flex-приложений at LIFE.Flash [30 июля, 2007 в 14:55]

[...] Проще говоря — это мастхэв.  Подробнее читайте здесь и [...]

Написать комментарий:

 

Bы можете использовать следующие теги для форматирования: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



User's collector

Внимание!
Эта опция станет доступной только после того как вы авторизуетесь.


 запомнить меня 
Я новый пользователь

На правах рекламы

рак молочной железы лечение на ранней стадии в Германии; צימרים; locum tenens radiologist; Уроки по 3D графике; speech therapy job