Standalone Debug Panel/Window

Is there any way to view the debug panel outside of the current request. The issue I keep running into is that while I am developing I will often dump and abort to view the data that I am working with but aborting prevents the debug panel from ever being rendered. This means that if I want to clear a cache entry, etc. I have to remove my dump, clear the cache, add the dump back in, … Over time it adds a lot of time to development. Anyone have any suggestions? I guess what I am looking for is a debugger/dashboard more like what they have in the MachII project. Obviously it wouldn’t be able to provide me with data about the current request but for this situation I am not looking for that information.

Instead of dumping, why not log to the console? stops the request, so I don’t think Coldbox will be of any help here.

Logbox seems to only accept string values. More often than not the data I am dumping is complex data structures, structs of structs, objects, etc. Is there some other logging mechanism that I am not familiar with?

The extra info argument is complex

The line debugger in ColdFusion Builder is my best friend in these circumstances.

Great. I think that will do the trick. I will check that out.

Luis, do the extra info arguments get passed around by reference? Should I be worried about performance if I leave logging statements in place in production code? Particularly if they have large objects being passed into the extra info arg. Maybe memory leaks from the logger holding on to objects and preventing them from being GC’d. I suppose the logger would only hold the references until the end of the request.

Thanks for the suggestion Andrew, though I am not at all a fan of Eclipse and definitely not CF Builder. Sublime Text for me all the way.

It is a struct, so passed by reference, but the appenders do not hold on to them for any longer than it takes for them to write the information to the file/database/etc. Performance is something you should consider, but it will be related to the time it takes to serialize and write large messages to disk, not memory references.

The easy solution to that is simply to use your ColdBox environment overrides to turn off certain message severities on production. For instance, say these are debug-level message, set your max level on the appender (or logging category) to be info for your production environment and those logs will be ignored everywhere but dev!

http://wiki.coldbox.org/wiki/LogBox.cfm#Severity_Levels

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com

Thanks Brad, that is what I was getting at. I wanted to make sure that if I leave certain log statements in place but the production settings ignore those severities that there really shouldn’t be any issue. Our plan is to have production set to only log fatal and error level messages to disk. We might also have fatal messages configured with the EmailAppender to send notifications to our team.

What about the ColdBoxTracerAppender. It would be nice to see all log statements on production in the Debugger panel. Is there any performance concerns there if the Debugger output is disabled by default?

You can enable the debugger panel for only you if you hit this URL in your site:

example.com?debugmode=true&debugpass=1234

That sets a cookie that lets only you see it. Of course, it will only show you log message from your requests.

Thanks!

~Brad

ColdBox Platform Evangelist
Ortus Solutions, Corp

E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com