Lets get this straight. Currently the only real way to debug long running, server side applications, is by looking at log files. Yet, logging in its current form is fundamentally broken.
What's wrong with logging currently?
The paradox of logging:
- You put a logging statement at a piece of code where you 'think' might be a bug.
- Because you already thought about the bug at that place, you already hardened the code there.
- In real life, errors happen where you least expected them to
- Thus, what really happens is, you never end up putting a log statement where the error actually ends up occurring.
Apart from the above paradox which occurs due to the fact that you are basically trying to predict errors in advance, logging has other evils:
- It clutters up your code and hides actual logic.
- Its a huge distraction from actual coding.
- Log levels - Not only do you need to think of the log statements, but also the 'level' of logging. Talk about predicting errors, this practically needs you to be Nostradamus.....
- Also it is just real fun to figure out a bug from a long running server which has a ginormous log file.
Whats good then?
That said, there is something good about logging after all.
If in the miraculous case, you do get your log statements positioned exactly right, looking at a log file can give you a quick overview of the execution of your program.
Chronon 2.0 and Post Execution Logging
With Chronon 2.0, we are reinventing logging, just like we reinvented the debugger only a few months ago.
The Post Execution Logging functionality in Chronon 2.0 allows you to add logging to a program after it has executed.
Yes, you read that right. You can actually add logging after your code's execution!
Not only that:
- You can access all your variables (just like in regular logging statements)
- You will the results of the log execution instantly without having to wait for the program to rexecute fully!
- In true Chronon fashion, clicking on a line of log output will take you directly to the point in time when that statement was output, so you can see the entire state of your program and use the step back functionality to find the root cause of your issue.
That also means you can finally get rid of all those logging statements in your program that are cluttering up your code and focus only on developing your software.
If all this still sounds crazy to you, see the video below to see Post Execution Logging in action.
Btw, if your Chronon 1.0 evaluation has expired and you still want to try out Chronon 2.0, just go ahead and download it and you will get another 30 days of free trial!