java應(yīng)用程序如何自定義log4j配置文件的位置
自定義log4j配置文件的位置
使用log4j很方便
1、添加依賴(lài)的log4j-1.2.8.jar包;
2、增加log4j.properties配置文件,但這個(gè)配置文件應(yīng)該放在哪個(gè)目錄下比較合適,今天來(lái)討論下:如何自定義配置文件的存放位置,尤其是代碼需要打包運(yùn)行的時(shí)候就需要考慮這個(gè)問(wèn)題。
一般情況,不論是java應(yīng)用程序還是web程序,代碼編譯成功且能正常運(yùn)行的情況下,log4j.properties配置文件會(huì)在com的同級(jí)目錄下有一個(gè)拷貝,如圖所示為java工程和web工程,都可以正常打印輸出日志信息。
該java工程的bin目錄下和com同級(jí)有一個(gè)log4j.properties的拷貝。
該web工程的classes目錄下和com同級(jí)有一個(gè)log4j.properties的拷貝。
當(dāng)java代碼需要打包運(yùn)行的時(shí)候,將log4j.properties配置文件存放到指定目錄是個(gè)比較好的選擇,便于發(fā)布和維護(hù),如圖就是將已發(fā)布好的目錄結(jié)構(gòu),應(yīng)用代碼打包成rwd_app.jar,配置文件放到config目錄下,代碼運(yùn)行時(shí)從自定義的目錄中加載日志配置文件。
log4j因配置文件放置位置出錯(cuò)
ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
jar版本
log4j-1.2.17;log4j-api-2.11.1;log4j-core-2.11.1
因?yàn)閷W(xué)習(xí)Mybatis初次接觸到log4j,出現(xiàn)以上的的報(bào)錯(cuò)信息。
通過(guò)它的報(bào)錯(cuò)信息可以知道缺少配置文件,但是我們已經(jīng)在資源文件夾下創(chuàng)建了對(duì)應(yīng)的文件目錄及l(fā)og4j.properties配置文件。
網(wǎng)上某些解決辦法是由于我們的log4kj是2.x版本,所以配置文件設(shè)置的是log4j2.xml,以下是它的內(nèi)容,在官方文檔上可以找到。
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>
可是創(chuàng)建這個(gè)文件后依舊是這個(gè)錯(cuò)誤,那么我就懷疑是不是log4j包里面設(shè)置的就是在資源文件夾的根目錄下,移動(dòng)到根目錄下果然問(wèn)題解決了。目錄層級(jí)如下圖:
新的問(wèn)題是如果把之前創(chuàng)建的log4j.properties配置文件放到資源文件夾根目錄下是不是有效。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JAVA對(duì)象中使用?static?和?String?基礎(chǔ)探究
這篇文章主要介紹了JAVA對(duì)象中使用static和String基礎(chǔ)探究,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09關(guān)于MyBatis結(jié)果映射的實(shí)例總結(jié)
結(jié)果集映射主要是為了解決屬性名和類(lèi)型名不一致的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于MyBatis結(jié)果映射的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05struts2的國(guó)際化實(shí)現(xiàn)網(wǎng)站整體中英文切換實(shí)例代碼
本篇文章主要介紹了struts2的國(guó)際化實(shí)現(xiàn)網(wǎng)站整體中英文切換實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10SpringBoot使用Redis對(duì)用戶(hù)IP進(jìn)行接口限流的示例詳解
使用接口限流的主要目的在于提高系統(tǒng)的穩(wěn)定性,防止接口被惡意打擊,這篇文章主要介紹了SpringBoot使用Redis對(duì)用戶(hù)IP進(jìn)行接口限流的示例代碼,需要的朋友可以參考下2023-07-07Java實(shí)現(xiàn)擲骰子控制臺(tái)和窗體兩種方法
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)擲骰子控制臺(tái)和窗體兩種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08MyBatis控制臺(tái)顯示SQL語(yǔ)句的方法實(shí)現(xiàn)
這篇文章主要介紹了MyBatis控制臺(tái)顯示SQL語(yǔ)句的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03淺談Java(SpringBoot)基于zookeeper的分布式鎖實(shí)現(xiàn)
這篇文章主要介紹了Java(SpringBoot)基于zookeeper的分布式鎖實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03springboot以FTP方式上傳文件到遠(yuǎn)程服務(wù)器
這篇文章主要介紹了springboot以FTP方式上傳文件到遠(yuǎn)程服務(wù)器,需要的朋友可以參考下2019-12-12