Why is this an issue?
When logging a message there are several important requirements which must be fulfilled:
- The user must be able to easily retrieve the logs
- The format of all logged message must be uniform to allow the user to easily read the log
- Logged data must actually be recorded
- Sensitive data must only be logged securely
If a program directly writes to the standard outputs, there is absolutely no way to comply with those requirements. That’s why defining and using a
dedicated logger is highly recommended.
Noncompliant code example
std::cout << "My Message"; // Noncompliant
std::cerr << "My Message"; // Noncompliant
printf("My Message"); // Noncompliant
Log().Get(logINFO) << "My Message";