Logging frameworks and their key features
There are a wide variety of logging frameworks offered by mainstream languages. Some notable ones to mention include Log4j from Java, Serilog from C#, and Bunyan from Node.js. From the time of proliferation of these frameworks, and from their use cases, there are similarities in what features a logging framework should provides to its users. The following are the most desirable properties that logging frameworks should have:
- Fast: Logging frameworks must ensure that they are not doing expensive operations when logging and should be able to process efficiently using as few CPU cycles as possible. For instance, in Java, if your log statements contain objects with lots of
to_string()
calls to them to just interpolate the object within the log message, then that's an expensive operation. This is considered an inefficient practice in Java. - Configurable outputs: It's very limiting to have the ability to log messages only to standard output. It stays only...