[英]Runnable Jar (JavaFx) cannot find log4j2.xml using spring boot maven plugin as builder
我有點腌漬。
我在git中有一個主分支(Cant分享對不起),當使用spring boot maven插件構建時,它完美運行並且沒有任何問題。 現在我做了一些工作到分支並添加東西(只添加了2個依賴項),一切正常但日志記錄。 它找不到我的log4j2.xml配置文件,無法生成日志文件。
據我所知(如果我錯了,請糾正我。我還在努力學習如何正確構建可運行的jar),當你通過maven spring插件構建時,它只會放置所有必需的依賴項和類(資源除外) )在可執行jar文件中。 然后,您必須將必要的資源放在已編程的位置上。
我不知道我錯過了什么。 它正確地將我的spring bean配置加載到jar文件之外(它在啟動時不會崩潰)。 當我通過終端(java -jar App.jar)運行可執行文件時,它不包含任何與log4j2相關的錯誤。
當我分支時,我只添加了2個依賴項/庫(下面)。 我當前設置了我的記錄器,它應該記錄與運行可執行文件的文件夾相同的文件夾。
自分支以來添加的依賴項。
<dependency>
<groupId>org.apache.sshd</groupId>
<artifactId>sshd-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
我正在使用版本2.8.2 for log4j2 api和core。
這是我的pom.xml文件中的spring boot插件腳本。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>spring-boot</classifier>
<mainClass>
My Main Class here
</mainClass>
<layout>
JAR
</layout>
</configuration>
</execution>
</executions>
</plugin>
我沒有在代碼中設置log4j2.xml。 我只是向眾神祈禱,在我參考它時,它會在運行時正確設置。 即
private static Logger log = LogManager.getLogger(CafQrCodeScannerMain.class);
最后這是我的log4j2.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="myFile" filename="${bundle:SomeFile:SomeFile.scanner.configuration.log.logFile}" immediateFlush="true" append="true">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="Console" />
<AppenderRef ref="myFile"/>
</Root>
</Loggers>
</Configuration>
它引用具有內容someFile.scanner.configuration.log.logFile = AppName.log的屬性文件
任何幫助,將不勝感激。
你需要一個名為log4j2.xml的配置把它放在src / main / resources下。 並檢查您的pom.xml以獲取log4j依賴項
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
</dependencies>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.