parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Parser XML Debugger или продолжение темы ...

BeaVe 08.02.2007 13:08

Реализовал в классе Debug.p возможность выводить "события" в виде дерева.
По классу получается так, что события - это работа метода.

Пример использование
@main[]

$oNewDebug[^Debug::create[
	$.LOG_FILE[/../data/logs/test.xml]
]]

^method1[param1;param2]

#end @main[]



@method1[strParam1;strParam2][iEventID]
### Debug Code
^oNewDebug.event[method1][
	$.strParam1[$strParam1]
	$.strParam2[$strParam2]
]{
	^oNewDebug.item[sTest;$sTest]
}
$iEventID($oNewDebug.EVENT_ID)
### Debug Code (end)


^method2[
	$.t1[T1]
	$.t2[T2]
	$.t3[T3]
]
^method2[]


### Debug Code
^oNewDebug.break($iEventID)
### Debug Code (end)
#end @method1[]



@method2[hshParams][iEventID]
### Debug Code
^oNewDebug.event[method2][
	$.hshParams[$hshParams]
]
$iEventID($oNewDebug.EVENT_ID)
### Debug Code (end)


^method3[]


### Debug Code
^oNewDebug.break($iEventID)
### Debug Code (end)
#end @method2[]



@method3[][iEventID]
### Debug Code
^oNewDebug.event[method3]
$iEventID($oNewDebug.EVENT_ID)
### Debug Code (end)


$result[]


### Debug Code
^oNewDebug.break($iEventID)
### Debug Code (end)
#end @method3[]
Пример log-файла
<?xml version="1.0" encoding="UTF-8"?>
<document>
	<event date="2007-02-08 17:51:08">
		<!--ID: 1, PARENT_ID: 0, EVENTS: 1-->
		<method>method1</method>
		<params>
			<item type="string" name="strParam1" length="6">param1</item>
			<item type="string" name="strParam2" length="6">param2</item>
		</params>
		<additional>
			<item type="string" name="sTest" length="0"/>
		</additional>
		<event date="2007-02-08 17:51:08">
			<!--ID: 2, PARENT_ID: 1, EVENTS: 2-->
			<method>method2</method>
			<params>
				<item type="hash" name="hshParams">
					<item type="string" name="t1" length="2">T1</item>
					<item type="string" name="t2" length="2">T2</item>
					<item type="string" name="t3" length="2">T3</item>
				</item>
			</params>
			<event date="2007-02-08 17:51:08">
				<!--ID: 3, PARENT_ID: 2, EVENTS: 3-->
				<method>method3</method>
			</event>
		</event>
		<event date="2007-02-08 17:51:08">
			<!--ID: 4, PARENT_ID: 1, EVENTS: 4-->
			<method>method2</method>
			<params>
				<item type="string" name="hshParams" length="0"/>
			</params>
			<event date="2007-02-08 17:51:08">
				<!--ID: 5, PARENT_ID: 4, EVENTS: 5-->
				<method>method3</method>
			</event>
		</event>
	</event>
</document>
Удобства и неудобства.

1. Кодер контролирует процесс создания дерева.
Есть возможность иметь класс-прослойку для вывода Debug-информации. По мере необходимости подключать нужный класс.

2. До появления ошибки можно увидеть результат работы всех методов.


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

  • Parser XML Debugger или продолжение темы ..., BeaVe 08.02.2007 13:08