1. 程式人生 > >Log4j配置輸出log檔案的相對路徑

Log4j配置輸出log檔案的相對路徑

1 配置log4j

log4j.properties檔案內容如下:

log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = info
log4j.appender.info.append=true
log4j.appender.info.File=/mylog/info.log

配置檔案中指定日誌輸出路徑配置程式碼片段如下:
log4j.appender.info.File=/mylog/info.log

上述日誌輸出路徑為指定好的絕對路徑,可否依據程式的執行情況,動態配置路徑呢?答案是可以的,詳情往下看。

2 動態配置日誌輸出路徑

動態配置日誌輸出路徑分為兩步:第一步抽象日誌輸出路徑;第二步設定系統變數。

2.1 抽象日誌輸出路徑

修改檔案輸出路徑,即將決定路徑替換為${log.base}

log4j.appender.DEBUG.File=${log.base}/mylog/info.log

2.2 設定系統變數

上一步中已經指定了抽象路徑log.base(當然名稱可以隨意取),因此在程式執行前需要初始化這個系統變數。

設定系統變數利用方法System.setProperty(“log.base”,rootPath); 這裡需要注意一點是,main函式主類中初始化變數時,不要初始化log4j, 否則會報錯,初始化log4j的動作放在子類中。

// 初始化日誌路徑
String rootPath = System.getProperty("user.dir"); 
System.setProperty("log.base",rootPath);
這樣就達到讓log4輸出的日誌檔案,位於專案執行根目錄下的相對路徑




相關推薦

Log4j配置輸出log檔案相對路徑

1 配置log4j log4j.properties檔案內容如下: log4j.logger.info=info log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.i

log4j配置日誌檔案相對路徑方法

總結了上面的三個方法,可取的是方法三,但是還是繁瑣,要寫個servlet,寫一大堆程式碼 下面這個方法比較實用我覺得,大家可以試下: log4j.appender.AFile=org.apache.log4j.DailyRollingFileAppenderlog4j.app

springboot2.0 @Slf4j log 日誌配置 輸出檔案 彩色日誌

今天做了個日誌記錄: 解決問題: 使用了springboot原生自帶的一個log框架  POM新增一個外掛(不然使用不了@Slf4j註解): <dependency> <groupId>org.projectlombok</

java讀取resources下的配置檔案+檔案相對路徑小結

一.檔案讀取 1.利用java.util自帶的Properties類讀取 Properties類的load方法提供了兩種讀取檔案的方式 (1)reader作為引數,以字元流方式讀取 Properties properties = new Properties();

springboot2.0 @Slf4j log 日誌配置 輸出檔案 彩色日誌

今天做了個日誌記錄:解決問題:使用了springboot原生自帶的一個log框架 POM新增一個外掛(不然使用不了@Slf4j註解):<dependency> <groupId>org.projectlombok</gro

log4j_properties配置生成log檔案路徑問題

那麼hibernate.log這個檔案會很“聰明地”建立到Tomcat的啟動目錄上,如果我希望它在\WEB-INF\下面安家,就要這樣寫:  log4j.appender.file.File=c:\tomcat41\webapps\mysite\WEB-INF\hibernate.log  但是如果我要把它

log4j配置輸出到多個日誌文件

基準 方式 ref err logfile otl sni targe file 通常我們項目裏,有一些重要的日誌想單獨的輸出到指定的文件,而不是全總輸出到系統的日誌文件中。那麽我們log4j為我們提供了這種功能,以下我們來一步一步看是怎麽做的。這裏以pro

log4j配置輸出到多個日誌文件(轉)

兩種模式 簡單 mylog 效果 evel ast mar 輸出 rop 參考資料:http://logging.apache.org/log4j/1.2/manual.html 通常我們項目裏,有一些重要的日誌想單獨的輸出到指定的文件,而不是全總輸出到系統的日誌文件中。那

golang檔案相對路徑問題

目錄結構: --simple --data --data.json --search --feed.go 具體程式碼: const dataFile = "../data/data.json" _, filename, _, _ :

mybatisGenerator配置時候生成檔案路徑問題

今天重新想用mybatis-generator逆向生成dao,mappr,domain檔案時候,突然失敗了。但是控制檯也沒報錯。 確認了配置,資料庫連線及表沒問題。最後發現是路徑的問題。之前的是相對路徑,萬般無奈之下我改成了絕對路徑試試。。就成功了。 改回相對路徑又失敗了。一直用的都是相對路徑的方式,突然

JAVA Tomcat Log4j 日誌輸出檔案

工程引用     Log4j.jar    要輸出日誌的類中引用     import org.apache.log4j.Logger;     import org.apache.log4j.PropertyConfigurator; 建立log4j.prope

Java Web中使用logback輸出日誌檔案路徑問題

一個軟體的日誌有多重要,相信當軟體出問題,你一行一行去找的時候才會意識到,Clean code, clean logs中提出了10個建議來有效的使用日誌。 從我自己的經驗上來看,從根本不會考慮日誌問題,到使用System.out.println(),再到使用s

獲得檔案相對路徑

1.將檔案放在原始碼目錄下     String path = 類名.class.getClassLoader().getResource("").getPath();    //可以ding定位到classes目錄下,   File file = new File(pa

base標籤和JSP宣告變數解決檔案相對路徑和絕對路徑問題

先看需求:同一個專案需要給不同的客戶部署,有的客戶使用windows,有的客戶使用Linux。使用windows的客戶,其使用者檔案是儲存在tomcat的相對路徑下;使用Linux的客戶,其使用者檔案是儲存在一個絕對路徑下。 問題:同一個檔案的顯示,相對路徑能

Jenkins訪問路徑配置自定義的相對路徑

開發十年,就只剩下這套架構體系了! >>>   

Log4j使用相對路徑指定log檔案及使用總結

Log4j在指定log檔案位置時一般是使用絕對路徑,這樣在部署環境發生變化時顯得十分麻煩,在網上找了很多種方法,個人感覺以下方法比較適用: 由於spring也會載入log4j.properties,如果載入不到就往控制檯打log資訊。Spring提供了 一個Log4

Maven專案 Log4j 配置及日誌輸出相對路徑

1.Maven pom.xml 配置log4j依賴 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId>

web專案Log4j日誌輸出路徑配置問題 問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的文

問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的資料夾下進行區分檢視每個例項日誌,要求通過儘可能少的改動配置檔案,最好修改例項名後可以不修改log4j的配置檔案。 實現分析:一般實現上面需求,需要在修

Log4J配置Syslog單獨輸出、以及配置單獨檔案輸出

前言: Log4J在專案中會經常使用,大部分的logger會配置到rootLogger中,這種情況下子Logger 會繼承 父Logger 的appender,也就是說子Logger 會在 父Logger 的appender裡輸出。 但在開發的過程中我們經常會

web專案Log4j日誌輸出路徑配置問題

問題描述:一個web專案想在一個tomcat下執行多個例項(通過修改war包名稱的實現),然後每個例項都將日誌輸出到tomcat的logs目錄下例項名命名的資料夾下進行區分檢視每個例項日誌,要求通過儘可能少的改動配置檔案,最好修改例項名後可以不修改log4j的配