The Mistery of the Logger

Remote logging in the age of the cloud and a ton of independent micro services

The logger is a huge mystery. You see and use it all the time. At the top of your class, a controller, a window, a backend service or within each method.

It's the black box that everyone says is so important to use, and you spent time with it. You throw something at it. You try to be as forward thinking as possible. You collect time taken to call an external API or a database. You practically establish a firehose into the logger, and pump it full of valuable data.

But do you ever get it back?

Sure there was this one time when you got hit really hard with a crash and you just had to figure out what went wrong, so you downloaded the log files and started surfing.

But it quickly becomes overwhelming to analyze just a few log files. One of them is too sparse. The other too chatty. You have no good way to correlate what happened at the same time across logs, and you're left with little to no search and filter mechanism.

When you finally find something useful buried in log files you're sort of on your own. Sure you can gather findings to a new file and sent around, add to source control or even print. But the interesting part is context. You might not have included sufficient context for others to understand, let alone fix the problem.

Your colleagues should be able to use your findings as a starting point - a shortcut to find even more on their own. Not see what you found as the end result.

In today's cloud world where each sub-system gets smaller and smaller, but the amount of them has exploded, you find it extremely difficult to monitor what's going on at the application level across your software.