From a97ed89d089f0ffc0fcb5ebc2d8bb0a2e1b69d12 Mon Sep 17 00:00:00 2001 From: RatzzFatzz Date: Thu, 15 Jan 2026 13:32:35 +0100 Subject: [PATCH] Parameterize log4j2 configs --- pom.xml | 6 +++--- src/deb/bin/mkvaudiosubtitlechanger | 2 +- .../impl/CommandRunner.java | 15 +++++---------- .../{log4j2.yaml => log4j2-debian.yml} | 16 ++++++++++++---- .../{log4j2-dev.yaml => log4j2-dev.yml} | 17 ++++++++++++----- .../{log4j2-debian.yaml => log4j2-windows.yml} | 18 +++++++++++++----- .../{log4j2-windows.yaml => log4j2.yml} | 16 ++++++++++++---- 7 files changed, 58 insertions(+), 32 deletions(-) rename src/main/resources/{log4j2.yaml => log4j2-debian.yml} (63%) rename src/main/resources/{log4j2-dev.yaml => log4j2-dev.yml} (69%) rename src/main/resources/{log4j2-debian.yaml => log4j2-windows.yml} (59%) rename src/main/resources/{log4j2-windows.yaml => log4j2.yml} (66%) diff --git a/pom.xml b/pom.xml index 750a7b1..fe821ef 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ src/main/resources - log4j2.yaml + log4j2.yml @@ -64,7 +64,7 @@ src/main/resources - log4j2-windows.yaml + log4j2-windows.yml @@ -161,7 +161,7 @@ src/main/resources - log4j2-debian.yaml + log4j2-debian.yml diff --git a/src/deb/bin/mkvaudiosubtitlechanger b/src/deb/bin/mkvaudiosubtitlechanger index dcc8207..c0bbcab 100644 --- a/src/deb/bin/mkvaudiosubtitlechanger +++ b/src/deb/bin/mkvaudiosubtitlechanger @@ -1 +1 @@ -java -Dlog4j2.configurationFile=log4j2-debian.yaml -jar /usr/lib/${project.artifactId}/${project.artifactId}-${project.version}.jar "$@" \ No newline at end of file +java -Dlog4j2.configurationFile=log4j2-debian.yml -jar /usr/lib/${project.artifactId}/${project.artifactId}-${project.version}.jar "$@" \ No newline at end of file diff --git a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/CommandRunner.java b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/CommandRunner.java index c9f2827..fd65ff2 100644 --- a/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/CommandRunner.java +++ b/src/main/java/at/pcgamingfreaks/mkvaudiosubtitlechanger/impl/CommandRunner.java @@ -43,14 +43,7 @@ public class CommandRunner implements Runnable { System.out.println("Safemode active. No files will be changed!"); } - String userLocal = getLogDirectory(); - if (userLocal == null) { - log.error("Could not load log4j2 log info"); - System.out.println("Could not load log4j2 log info"); - System.exit(1); - } - - LastExecutionHandler lastExecutionHandler = config.isOnlyNewFiles() ? new LastExecutionHandler(userLocal) : null; + LastExecutionHandler lastExecutionHandler = config.isOnlyNewFiles() ? new LastExecutionHandler(getApplicationHome()) : null; FileFilter fileFilter = new FileFilter(config.getExcluded(), config.getIncludePattern(), config.getFilterDate(), lastExecutionHandler); FileProcessor fileProcessor = new CachedFileProcessor(new MkvFileProcessor(config.getMkvToolNix(), fileFilter)); AttributeChangeProcessor attributeChangeProcessor = new AttributeChangeProcessor(config.getPreferredSubtitles().toArray(new String[0]), config.getForcedKeywords(), config.getCommentaryKeywords(), config.getHearingImpaired()); @@ -61,7 +54,7 @@ public class CommandRunner implements Runnable { kernel.execute(); } - public String getLogDirectory() { + public String getApplicationHome() { LoggerContext context = (LoggerContext) LogManager.getContext(false); Configuration config = context.getConfiguration(); @@ -72,7 +65,9 @@ public class CommandRunner implements Runnable { } } - log.warn("No file appender found in configuration"); + log.error("Could not load log4j2 path info"); + System.out.println("Could not load log4j2 path info"); + System.exit(1); return null; } } diff --git a/src/main/resources/log4j2.yaml b/src/main/resources/log4j2-debian.yml similarity index 63% rename from src/main/resources/log4j2.yaml rename to src/main/resources/log4j2-debian.yml index b909c8d..109f2b2 100644 --- a/src/main/resources/log4j2.yaml +++ b/src/main/resources/log4j2-debian.yml @@ -1,12 +1,20 @@ Configuration: - name: DefaultLogger + name: MainConfig + + Properties: + Property: + - name: logDir + value: ${sys:user.home}/.local/mkvaudiosubtitlechanger/logs + - name: logPattern + value: "%d{DEFAULT} | %-5level | %msg %n %throwable" + Appenders: RollingFile: name: FileAppender - fileName: logs/application.log - filePattern: logs/archive/application-%d{yyyy-MM-dd}-%i.log.gz + fileName: ${logDir}/application.log + filePattern: ${logDir}/archive/application-%d{yyyy-MM-dd}-%i.log.gz PatternLayout: - Pattern: "%d{DEFAULT} | %-5level | %msg %n %throwable" + Pattern: logPattern ThresholdFilter: level: debug Policies: diff --git a/src/main/resources/log4j2-dev.yaml b/src/main/resources/log4j2-dev.yml similarity index 69% rename from src/main/resources/log4j2-dev.yaml rename to src/main/resources/log4j2-dev.yml index 71280f7..4949d72 100644 --- a/src/main/resources/log4j2-dev.yaml +++ b/src/main/resources/log4j2-dev.yml @@ -1,18 +1,25 @@ Configuration: - name: DefaultLogger + + Properties: + Property: + - name: logDir + value: "./logs" + - name: log_pattern + value: "%d{DEFAULT} | %-5level | %thread | %C{1} | %msg %n %throwable" + Appenders: Console: name: Console_Out PatternLayout: - Pattern: "%d{DEFAULT} | %-5level | %thread | %C{1} | %msg %n %throwable" + Pattern: ${log_pattern} ThresholdFilter: level: debug RollingFile: name: FileAppender - fileName: logs/application.log - filePattern: logs/archive/application-%d{yyyy-MM-dd}-%i.log.gz + fileName: ${logDir}/application.log + filePattern: ${logDir}/archive/application-%d{yyyy-MM-dd}-%i.log.gz PatternLayout: - Pattern: "%d{DEFAULT} | %-5level | %thread | %C{1} | %msg %n %throwable" + Pattern: logPattern ThresholdFilter: level: debug Policies: diff --git a/src/main/resources/log4j2-debian.yaml b/src/main/resources/log4j2-windows.yml similarity index 59% rename from src/main/resources/log4j2-debian.yaml rename to src/main/resources/log4j2-windows.yml index 1ad3cd5..8c24f4e 100644 --- a/src/main/resources/log4j2-debian.yaml +++ b/src/main/resources/log4j2-windows.yml @@ -1,12 +1,20 @@ Configuration: - name: DefaultLogger + name: WindowsConfig + + Properties: + Property: + - name: logDir + value: ${sys:user.home}/AppData/Local/MKVAudioSubtitleChanger/logs + - name: logPattern + value: "%d{DEFAULT} | %-5level | %msg %n %throwable" + Appenders: RollingFile: name: FileAppender - fileName: ${sys:user.home}/.local/mkvaudiosubtitlechanger/logs/application.log - filePattern: ${sys:user.home}/.local/mkvaudiosubtitlechanger/logs/archive/application-%d{yyyy-MM-dd}-%i.log.gz + fileName: ${logDir}/application.log + filePattern: ${logDir}/archive/application-%d{yyyy-MM-dd}-%i.log.gz PatternLayout: - Pattern: "%d{DEFAULT} | %-5level | %msg %n %throwable" + Pattern: logPattern ThresholdFilter: level: debug Policies: @@ -15,7 +23,7 @@ Configuration: DefaultRolloverStrategy: max: 30 Delete: - basePath: archive + basePath: logs/archive maxDepth: 1 IfLastModified: age: 30d diff --git a/src/main/resources/log4j2-windows.yaml b/src/main/resources/log4j2.yml similarity index 66% rename from src/main/resources/log4j2-windows.yaml rename to src/main/resources/log4j2.yml index e39795f..3a01cc2 100644 --- a/src/main/resources/log4j2-windows.yaml +++ b/src/main/resources/log4j2.yml @@ -1,12 +1,20 @@ Configuration: - name: DefaultLogger + name: MainConfig + + Properties: + Property: + - name: logDir + value: ./logs + - name: logPattern + value: "%d{DEFAULT} | %-5level | %msg %n %throwable" + Appenders: RollingFile: name: FileAppender - fileName: ${sys:user.home}/AppData/Local/MKVAudioSubtitleChanger/logs/application.log - filePattern: ${sys:user.home}/AppData/Local/MKVAudioSubtitleChanger/logs/archive/application-%d{yyyy-MM-dd}-%i.log.gz + fileName: ${logDir}/application.log + filePattern: ${logDir}/archive/application-%d{yyyy-MM-dd}-%i.log.gz PatternLayout: - Pattern: "%d{DEFAULT} | %-5level | %msg %n %throwable" + Pattern: logPattern ThresholdFilter: level: debug Policies: