From ca6f111d7de66e19d8474c88ebfa652ab675dd40 Mon Sep 17 00:00:00 2001 From: Travis Lyons Date: Tue, 8 Sep 2026 14:48:39 +0000 Subject: [PATCH] Replace System.out usage with SLF4J logging Addresses SonarQube java:S106 by adding an SLF4J logger to each affected class and routing all standard-output writes through it. --- build.gradle | 5 +++++ .../primitive/wrappers/InventoryAuditApp.java | 15 ++++++++++----- .../primitive/wrappers/OrderRollupApp.java | 9 +++++++-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 7b92be2..f474c58 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,11 @@ repositories { mavenCentral() } +dependencies { + implementation 'org.slf4j:slf4j-api:2.0.16' + runtimeOnly 'org.slf4j:slf4j-simple:2.0.16' +} + application { mainClass = 'dev.trly.java.example.primitive.wrappers.OrderRollupApp' } diff --git a/src/main/java/dev/trly/java/example/primitive/wrappers/InventoryAuditApp.java b/src/main/java/dev/trly/java/example/primitive/wrappers/InventoryAuditApp.java index 9f1ad9e..c084fb4 100644 --- a/src/main/java/dev/trly/java/example/primitive/wrappers/InventoryAuditApp.java +++ b/src/main/java/dev/trly/java/example/primitive/wrappers/InventoryAuditApp.java @@ -1,6 +1,11 @@ package dev.trly.java.example.primitive.wrappers; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public final class InventoryAuditApp { + private static final Logger LOGGER = LoggerFactory.getLogger(InventoryAuditApp.class); + private InventoryAuditApp() { } @@ -34,15 +39,15 @@ public static void main(String[] args) { totalValue += price; availableCount++; } - System.out.printf( - "Item %d: $%.2f, grade %c, %s%n", + LOGGER.info( + "Item {}: ${}, grade {}, {}", index + 1, - price, - grade, + String.format("%.2f", price), + String.format("%c", grade), available ? "in stock" : "out of stock"); } - System.out.printf("Available items: %d worth $%.2f%n", availableCount, totalValue); + LOGGER.info("Available items: {} worth ${}", availableCount, String.format("%.2f", totalValue)); } public static Double calculateAverageValue(double totalValue, int itemCount) { diff --git a/src/main/java/dev/trly/java/example/primitive/wrappers/OrderRollupApp.java b/src/main/java/dev/trly/java/example/primitive/wrappers/OrderRollupApp.java index 1eba00c..e588980 100644 --- a/src/main/java/dev/trly/java/example/primitive/wrappers/OrderRollupApp.java +++ b/src/main/java/dev/trly/java/example/primitive/wrappers/OrderRollupApp.java @@ -1,6 +1,11 @@ package dev.trly.java.example.primitive.wrappers; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public final class OrderRollupApp { + private static final Logger LOGGER = LoggerFactory.getLogger(OrderRollupApp.class); + private OrderRollupApp() { } @@ -25,10 +30,10 @@ public static void main(String[] args) { final long cents = orderValues[index].longValue(); totalBoxes += boxes; totalCents += cents; - System.out.printf("Order %d: %d boxes, $%.2f%n", index + 1, boxes, cents / 100.0); + LOGGER.info("Order {}: {} boxes, ${}", index + 1, boxes, String.format("%.2f", cents / 100.0)); } - System.out.printf("Shipped %d boxes for $%.2f%n", totalBoxes, totalCents / 100.0); + LOGGER.info("Shipped {} boxes for ${}", totalBoxes, String.format("%.2f", totalCents / 100.0)); } public static Integer calculatePackingUnits(int boxesPerOrder, int orderCount) {