Logging is a vital part of any application of mid- to high-level complexity. While the program runs through its execution paths, several logging statements describe what the program is doing, which parameters are passed to method calls, what values local variables and class fields have and how they change, which decisions are made, and so on. This logging information is collected and sent to a file, a database, a message queue, or whatever, and the developer and the operations team can investigate program flows for bug-fixing or auditing purposes.
This chapter is about the various ...