From e41e0abec8134600583efd91fb7655a39067cb7f Mon Sep 17 00:00:00 2001 From: MrLetsplay Date: Sat, 22 Feb 2025 18:43:03 +0100 Subject: [PATCH] Add configurable log level, Add more debug logging --- .../java/me/mrletsplay/videobase/Config.java | 9 +++++++++ .../java/me/mrletsplay/videobase/VideoBase.java | 17 ++++++++++++++--- .../mrletsplay/videobase/library/Library.java | 9 ++++++++- 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/main/java/me/mrletsplay/videobase/Config.java b/src/main/java/me/mrletsplay/videobase/Config.java index e37492d..61bc392 100644 --- a/src/main/java/me/mrletsplay/videobase/Config.java +++ b/src/main/java/me/mrletsplay/videobase/Config.java @@ -3,6 +3,7 @@ package me.mrletsplay.videobase; import java.util.List; import java.util.Objects; +import ch.qos.logback.classic.Level; import me.mrletsplay.mrcore.json.JSONType; import me.mrletsplay.mrcore.json.converter.JSONConstructor; import me.mrletsplay.mrcore.json.converter.JSONConvertible; @@ -26,6 +27,9 @@ public class Config implements JSONConvertible { @JSONListType(JSONType.STRING) private List includeFileTypes; + @JSONValue + private String logLevel; + @JSONConstructor private Config() {} @@ -45,6 +49,10 @@ public class Config implements JSONConvertible { return includeFileTypes == null ? DEFAULT_FILE_TYPES : includeFileTypes; } + public String getLogLevel() { + return logLevel == null ? Level.INFO.toString() : logLevel; + } + public void validate() { Objects.requireNonNull(libraryPath, "libraryPath"); } @@ -55,6 +63,7 @@ public class Config implements JSONConvertible { config.readOnly = false; config.cachePath = "cache"; config.includeFileTypes = DEFAULT_FILE_TYPES; + config.logLevel = Level.INFO.toString(); return config; } diff --git a/src/main/java/me/mrletsplay/videobase/VideoBase.java b/src/main/java/me/mrletsplay/videobase/VideoBase.java index 73c2aae..da18b17 100644 --- a/src/main/java/me/mrletsplay/videobase/VideoBase.java +++ b/src/main/java/me/mrletsplay/videobase/VideoBase.java @@ -54,11 +54,18 @@ public class VideoBase { System.exit(1); } + Level logLevel = Level.toLevel(config.getLogLevel(), null); + if(logLevel == null) { + LOGGER.warn("Invalid log level '" + config.getLogLevel() + "' configured, falling back to INFO"); + logLevel = Level.INFO; + } + + LOGGER.info("Using log level " + logLevel); + ((ch.qos.logback.classic.Logger) LOGGER).setLevel(logLevel); + loadLibrary(); executor.scheduleWithFixedDelay(VideoBase::loadLibrary, 10, 10, TimeUnit.MINUTES); - ((ch.qos.logback.classic.Logger) LOGGER).setLevel(Level.INFO); - HttpServer server = new HttpServer(HttpServer.newConfigurationBuilder() .hostBindAll() .port(6969) @@ -72,6 +79,7 @@ public class VideoBase { new LibraryAPI().register(server.getDocumentProvider()); server.start(); + LOGGER.info("Server is running"); } public static Config getConfig() { @@ -83,9 +91,12 @@ public class VideoBase { } private static void loadLibrary() { - library = Library.load(Path.of(config.getLibraryPath()), config.isReadOnly()); + Path libraryPath = Path.of(config.getLibraryPath()); + LOGGER.debug("Loading library from path: " + libraryPath); + library = Library.load(libraryPath, config.isReadOnly()); ThumbnailCreator.clearCache(); ThumbnailCreator.createThumbnails(); + LOGGER.debug("Loaded " + library.getVideos().size() + " videos"); } } diff --git a/src/main/java/me/mrletsplay/videobase/library/Library.java b/src/main/java/me/mrletsplay/videobase/library/Library.java index e69757c..564cd30 100644 --- a/src/main/java/me/mrletsplay/videobase/library/Library.java +++ b/src/main/java/me/mrletsplay/videobase/library/Library.java @@ -112,7 +112,14 @@ public class Library { } private static void load(Path rootPath, Path path, List