== Why is this an issue? When logging a message, the following requirements should be fulfilled: * The user can easily record logged data and retrieve the logs. * The format of all logged messages is uniform and provides context about the message creator. This improves the readability of the logs. * Sensitive data is logged securely. Simply printing messages to `System.out` or `System.err` does not fulfill these needs. A dedicated logger should be used instead. === Noncompliant code example [source,java,diff-id=1,diff-type=noncompliant] ---- class PrintMessage { public void print() { System.out.println("My Message"); // Noncompliant, output directly to System.out without a logger } } ---- === Compliant solution [source,java,diff-id=1,diff-type=compliant] ---- import java.util.logging.Logger; class PrintMessage { Logger logger = Logger.getLogger(getClass().getName()); public void print() { logger.info("My Message"); // Compliant, output via logger } } ---- == Resources === Documentation * https://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html[Java SE 7 API Specification: java.util.logging.Logger] * https://owasp.org/Top10/A09_2021-Security_Logging_and_Monitoring_Failures/[OWASP Top 10 2021 Category A9] - Security Logging and Monitoring Failures * https://www.owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure[OWASP Top 10 2017 Category A3] - Sensitive Data Exposure * https://wiki.sei.cmu.edu/confluence/x/nzdGBQ[CERT, ERR02-J.] - Prevent exceptions while logging data ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]