On 08/05/2013 13:15, Graeme Geldenhuys wrote:
On 2013-05-08 12:59, Martin wrote:
Do something like lazlogger does.
Thanks for the suggestion, I'll take a closer look at lazlogger. I do
prefer not to leave debug code in all my units though. Otherwise I could
simply continue using my code templates ('sme' and 'smx') that inserts
code like

  {$IFDEF DEBUG}SendMethodEnter('SomeClass.SomeMethod');{$ENDIF DEBUG}


Also, sometimes I would like to only trace a select few methods in a
class or unit. With the checkbox treeview idea that should make it very
easy to do, and revert those changes when I am done.


Lazlogger can do selected.

It has 3 levels

LazLoggerDummy: empty methods (the ones wit open array, may generate some code, the rest should not)

LazLoggerBase: always generates code, but installs an inactive logger object (use in packages, then the project can activate it)

LazLogger: the full deal (use in project)


register an option:

var
  DBG_LOCATION_INFO: PLazLoggerLogGroup;
initialization
DBG_LOCATION_INFO := DebugLogger.FindOrRegisterLogGroup('DBG_LOCATION_INFO' {$IFDEF DBG_LOCATION_INFO} , True {$ENDIF} );


    debugln(DBG_LOCATION_INFO, 'Text');

will only log if called with commandline (or set in project)
--debug-enable=DBG_LOCATION_INFO


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to