From 260ad2efa7c61bc1f6b04a528e67ace97d5d1d41 Mon Sep 17 00:00:00 2001 From: Elias Haugsbakk Date: Sat, 25 Jul 2026 15:09:44 +0200 Subject: implement basic logging using SLF4J --- clams-server/pom.xml | 12 ++++++------ .../src/main/java/no/eliashaugsbakk/clams/server/Main.java | 6 +++++- .../no/eliashaugsbakk/clams/server/config/AppConfig.java | 13 +++++++------ pom.xml | 2 +- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/clams-server/pom.xml b/clams-server/pom.xml index 7654aed..2f77778 100644 --- a/clams-server/pom.xml +++ b/clams-server/pom.xml @@ -33,15 +33,10 @@ javalin-rendering-pebble 7.2.2 - - org.slf4j - slf4j-simple - 2.0.17 - org.xerial sqlite-jdbc - 3.53.2.0 + 3.53.2.1 com.zaxxer @@ -68,6 +63,11 @@ jackson-databind 2.22.1 + + org.slf4j + slf4j-simple + 2.1.0-alpha1 + diff --git a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/Main.java b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/Main.java index 8f494ed..eba65f8 100644 --- a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/Main.java +++ b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/Main.java @@ -6,8 +6,11 @@ import io.javalin.rendering.template.JavalinPebble; import java.util.Map; import no.eliashaugsbakk.clams.server.config.AppContext; import no.eliashaugsbakk.clams.server.config.AppRoutes; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Main { + private static final Logger log = LoggerFactory.getLogger(Main.class); void main() { // Initialize dependencies AppContext context = new AppContext(); @@ -37,7 +40,7 @@ public class Main { ))); config.routes.exception(Exception.class, (e, ctx) -> { - e.printStackTrace(); + log.error("Unhandled error on {} {}", ctx.method(), ctx.path(), e); ctx.status(500); if (ctx.path().startsWith("/api")) { @@ -55,6 +58,7 @@ public class Main { } catch (Exception e) { context.close(); + log.error("Unexpected error", e); throw e; } } diff --git a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/config/AppConfig.java b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/config/AppConfig.java index 05e92d2..4e5b50f 100644 --- a/clams-server/src/main/java/no/eliashaugsbakk/clams/server/config/AppConfig.java +++ b/clams-server/src/main/java/no/eliashaugsbakk/clams/server/config/AppConfig.java @@ -9,8 +9,11 @@ import java.nio.file.attribute.PosixFilePermissions; import java.security.SecureRandom; import java.util.Base64; import java.util.Properties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class AppConfig { + private static final Logger log = LoggerFactory.getLogger(AppConfig.class); private final Properties properties = new Properties(); private Path configPath; @@ -35,11 +38,11 @@ public class AppConfig { Path storageDir = Path.of(getStorageLocation()); if (!Files.exists(storageDir)) { Files.createDirectories(storageDir); - System.out.println("Created application storage directory at: " + storageDir.toAbsolutePath()); + log.info("Created application storage directory at: {}", storageDir.toAbsolutePath()); } setOwnerOnlyPermissions(storageDir); } catch (IOException e) { - System.err.println("Warning: Could not verify or create storage directory: " + e.getMessage()); + log.warn("Could not verify or create storage directory", e); } } @@ -72,10 +75,10 @@ public class AppConfig { """, token)); } setOwnerOnlyPermissions(configPath); - IO.println("Generated a default configuration file at: " + configPath); + log.info("Generated a default configuration file at: {}", configPath); } catch (IOException e) { - System.err.println("Could not create default config file: " + e.getMessage()); + log.error("Could not create default config file", e); } } @@ -86,8 +89,6 @@ public class AppConfig { public String getAuthToken() { String token = properties.getProperty("authorization_token"); if (token == null || token.isBlank()) { - System.err.println("CRITICAL: 'authorization_token' is missing or empty in config properties!"); - throw new IllegalStateException("CRITICAL: 'authorization_token' is missing or empty in config properties!"); } return token; diff --git a/pom.xml b/pom.xml index b61a18d..9bbc8a0 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 25 UTF-8 - 6.1.1 + 6.1.2 5.23.0 3.14.1 -- cgit v1.2.3