|
Remote Debugging Online Applications
Submitted by |
I think most of us are aware of the fact that
debugging a running online application is a pretty
difficult task if it was not identified in the
beginning. Designing the application in such a manner
as to centralize all kinds of debugging output is the
key in this scenario. This idea was implemented in my
current project so i thought it is worth to share
here.
My current application required 3 kinds of output
targets.
1. Console (Important but not usable)
2. Socket (Provides real-time feedback)
3. File Stream (Good for reviewing the problem)
My application was a sort of a Proxy server that has
to run as a Daemon Service and provides facilities to
connected users, so after launching the application
and closing the Console i was unaware what kind of
errors are being generated by my application so i
required a mechanism through which i can connect on my
Server and can check the current activity of the
debugging. Also if someone came to me that at a
particular instance of time the application didnt
behave as required then i need to review the previous
generated debugged output, for that i need a
persistent file stream.
So in this case what i did was basically very simple,
i centralized all my debugging output through a single
class QDebugOut
(The source is in Java but i think we can get the
general idea)
class QDebugOut
{
public static void LogIt(String str)
{
LogItConsole(str);
LogItConnection(str);
LogItStream(str);
}
private static void LogItConsole(String str)
{
System.out.println(str);
}
private static void LogItConnection(String str)
{
// Go through all the connections
// Write the given String(str)
// Flush the stream
// Loop
}
private static void LogItStream(String str)
{
// Write it in a File Stream
}
}
|
So now that i have centralized all my debugging output
i can do something like this in my main code
public class MainClass
{
public void SomeFunction()
{
try
{
// A line that generates an Exception
}
catch(Exception e)
{
QDebugOut.LogIt("Error has occured"+e);
}
}
}
|
So now i can see every generated Debugging error
wherever / whenever it suits me.
Regards
-Saad
|
The zip file viewer built into the Developer Toolbox made use
of the zlib library, as well as the zlibdll source additions.
|