Hi Brook,

Cool, thanks for trying it out!  I think you have it right on all counts.

If you're using cftrace/trace() and Firelogger/Firebug is not enabled then the 
custom trace tag will simply call the "native" CF trace code (trace_adobe.cfm). 
 In this case there will be a little overhead as trace will log the value to 
cftrace.log, but otherwise not much else happens.  AFAIK the native trace code 
does log to cftrace.log even when debug is disabled on the server.  Of course 
you could easily change the custom trace.cfm to simply exit if Firelogger isn't 
active (just don't call adobe_trace.cfm).

If you use the firelogger.cfc and its log() method directly, and Firelogger is 
disabled, then there is a small overhead just from instantiating the CFC (no 
idea how to quantify that), but otherwise it will simply return w/out doing 
much of anything.  So the overhead would be very minimal in this case as well.

Either of the above holds true whether or not debugging is enabled in CF admin. 
 cftrace/trace() (including my custom version) only saves to debug info if 
debugging is enabled on the server.  firelogger.cfc by itself doesn't save to 
debug info at all.  You can still output messages to Firelogger console from 
within your code even if debug is disabled using either trace() or 
firelogger.log().

The main benefit to using cftrace/trace() is that if you move code to a server 
that doesn't have firelogger.cfc installed, it still works.  You also keep the 
other options of cftrace, such as dumping the data inline and/or logging to a 
file.

As for the overall CF debug output, it certainly carries a performance penalty. 
I definitely disable debugging on production servers and turn it on only when 
needed.  I can't tell you exactly what impact it has, but the amount of 
information tracked by the debugger is potentially huge.  The debug info--which 
templates, queries, traces, etc, have executed--is a (possibly giant) query 
that gets written-to every time an event happens, and it saves a ton of info 
about each event.  I imagine it could incur a significant memory hit at the 
least.  This happens whether or not Firelogger is enabled--the only way to 
disable that processing is to turn off debugging in CF admin.  I don't know if 
it still collects all that info if your IP address doesn't match what is set up 
in "Debugging IP Addresses" (probably not, but need to test!).

Hope that helps!

Cheers,
-Max



-------- Original Message --------
Subject: Re: [ANNOUNCE] CF-FireLogger
From: Brook Davies <[email protected]>
To: cf-talk <[email protected]>
Date: 1/27/2012 12:37 AM

>
> Hey Max,
>
> Got it installed (painless) and it looks cool. What I am wondering is
> it seems like you advocate using trace() instead of console().  And
> it sounds like if firebug/firelogger is not enabled, that no
> debugging output would be sent. Is that true? If so, is there a
> performance penalty to using this on a production server to track a
> bug? Wouldn't any client that does not have the firebug/firelogger
> combo and their IP added to the CF debugging IP list not get any
> additional overhead? Does the trace tag have overhead when debugging
> is not enabled?
>
> Just some thoughts....
>
> Thanks again for a very cool extension and contribution to the
> community!
>
> Brook
>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:349637
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to