久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

瀏覽:214日期:2023-12-25 13:38:13

問題描述

如下圖所示,運行的jar 包和 log4j 的配置文件放在同一個目錄,jar包內沒有任何配置文件:java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

在spring boot 框架的 main 方法中,通過下面這種方式,加載jar 包外的log4j配置文件

java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

log4j配置文件的輸出位置如下:

java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

運行java -jar gf-mfile.jar 之后,控制臺有info 日志信息,如下圖:

java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。系統也能夠創建 micofile.log 日志文件,但是,文件為null,0字節,里面沒有任何數據,info 日志信息沒有寫入文件中,如下圖:

java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

問題:如果,我將log4j配置文件 打到jar 包中,如下圖:

java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

執行jar,日志文件是能夠生成日志信息的。我把log4j配置文件,放到和jar 包同級目錄就只創建日志文件不寫入日志信息了。

為什么配置文件放到jar包外,日志文件中沒有內容? 請大神賜教,感激不盡……(本人推測,是否是main方法中的讀取,log4j 配置文件的代碼有問題,如果是這樣應該怎么修改?)

問題解答

回答1:

還需要看你的運行參數,特別是 classpath 參數,是否把這個包外的配置文件包含到了 classpath 當中。

回答2:

1.檢查下配置文件里面LOG的輸出級別2.檢查下代碼中Logger的代碼,是否和輸出級別匹配

回答3:

根據下面那位大俠(捏造的信仰)的建議,最終成功解決問題,下面,記錄一下問題解決的詳細步驟:首先,找到jar 包中的MANIFEST.MF 文件,找到該文件的Main-Class方法:java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

執行如下命令:

java.exe -cp .;gf-mfile.jar org.springframework.boot.loader.JarLauncher

日志文件中有了信息。

=========附錄,java -cp 命令解析===============java -cp .;c:dir1lib.jar Test

-cp 和 -classpath 一樣,是指定類運行所依賴其他類的路徑,通常是類庫,jar包之類,需要全路徑到jar包,window上分號“;”

分隔,linux上是分號“:”分隔。不支持通配符,需要列出所有jar包,用一點“.”代表當前路徑。 雖然現在都有eclipse之類的IDE了,但有時候后會手工編譯和運行一些程序,很多人包括多年開發經驗的人都不知道怎么在命令行參 數運行類。有點杯具…… 使用范例: java -cp ..libhsqldb.jar org.hsqldb.Server -database mydb 或 java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb

標簽: java
主站蜘蛛池模板: 巴彦淖尔市| 资源县| 象州县| 望奎县| 富民县| 报价| 屏东县| 土默特左旗| 高密市| 平利县| 天津市| 轮台县| 钟山县| 新蔡县| 夏河县| 桓台县| 讷河市| 东阳市| 沛县| 琼中| 泸溪县| 定安县| 德州市| 韶关市| 中阳县| 中西区| 凤阳县| 海口市| 固原市| 临武县| 德惠市| 新乡县| 鹤峰县| 修文县| 额济纳旗| 武清区| 大渡口区| 嘉禾县| 榆树市| 兰考县| 曲麻莱县|