1. 程式人生 > >Log4j2介紹和特性例項(六)--配置檔案不在預設路徑下的載入

Log4j2介紹和特性例項(六)--配置檔案不在預設路徑下的載入

1. Log4j2配置檔案的預設路徑是src資料夾,如果打包程式的話,配置檔案會被寫死到Jar包中,使用者不能隨時修改配置檔案。

因此,如果把配置檔案放到專案的根路徑下,則程式打包後,配置檔案可以與Jar包放到同一路徑下,便於使用者修改編輯。

這樣的話,需要在Java主程式中進行如下設定,1)引入ConfigurationSource

import org.apache.logging.log4j.core.config.ConfigurationSource;

2)在函式中載入專案根目錄下的配置檔案:
	/**
	 * 載入專案根目錄下的log4j2.xml檔案
	 * 應用程式打包後,xml可以與Jar包放到同一個目錄下,方便使用者修改日誌等級
	 * 
	 */
	public String setLogConfigFilePath(){
		ConfigurationSource source;
		//method2 System.getProperty
		String config = System.getProperty("user.dir");
		String fullPath = config + "\\log4j2.xml";
		System.out.println("Log4j2 fullPath = " + fullPath);
		File file = new File(fullPath);
		//this ConfigurationSource() could load xml dynamicly, info->debug->info test OK!!!
		try {
			source = new ConfigurationSource(new FileInputStream(file), file);
			Configurator.initialize(null, source);
			logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return fullPath;
	}

注意:如果專案中使用了Maven等專案管理工具,在變更xml路徑的時候,最好在專案目錄下搜尋是否有其他路徑下儲存的多餘的log4j2.xml,有的話刪除。

下面將介紹如何在程式碼中指定日誌檔案的名字。謝謝。

相關推薦

Log4j2介紹特性例項()--配置檔案預設路徑載入

1. Log4j2配置檔案的預設路徑是src資料夾,如果打包程式的話,配置檔案會被寫死到Jar包中,使用者不能隨時修改配置檔案。 因此,如果把配置檔案放到專案的根路徑下,則程式打包後,配置檔案可以與J

Log4j2介紹特性例項(三)--日誌的非同步輸出

上一篇介紹了一個Log4j2的使用例項,本編將介紹Log4j2的一個重要特性,日誌非同步輸出。 日誌非同步輸出的好處在於,使用單獨的程序來執行日誌列印的功能,可以提高日誌執行效率,減少日誌功能對正常業務的影響。 非同步日誌在程式的classpath需要載入disruptor

Log4j2介紹特性例項(一)

Log4j是Apache的著名專案,隨著Java應用的越來越廣泛,對日誌效能等方面的要求也越來越高。Log4j的升級版本Log4j2在前些年釋出。 在log4j2釋出前,應經有了logback和SLF4J,功能也是非常強大,那麼為什麼作者還要釋出log4j2呢?在《lo

Log4j2介紹特性例項(五)--使用者自定義日誌等級

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">

Asp.net Core 類庫讀取配置檔案資訊

Asp.net Core 和類庫讀取配置檔案資訊 看乾貨請移步至.net core 讀取配置檔案公共類 首先開一個腦洞,Asp.net core 被使用這麼長時間了,但是關於配置檔案(json)的讀取,微軟官方似乎並沒有給出像.net framework讀取web.config那樣簡單且完美。嚴重懷

java+maven工程 實現 自動對war包進行復制並修改替換每個的配置檔案

   在工作中碰到一個比較苦惱的事情,(這裡以7條線為例子)同一個war包 需要部署7條生產線,但是每個生產線的編號以及ip都不同,導致我們手動的每個包去替換配置檔案和配           置ip的js檔案   &n

Spring MVC 通過 @PropertySource@Value 來讀取配置檔案

Spring MVC 通過 @PropertySource和@Value 來讀取配置檔案 在這篇文章中,我們會利用Spring的@PropertySource和@Value兩個註解從配置檔案properties中讀取值。先來段java程式碼: @Component @PropertyS

一臺機器上搭建多個redis例項配置檔案修改部分

1、單個redis服務搭建請參考:redis服務搭建 2、一臺Redis伺服器,分成多個節點,每個節點分配一個埠(6380,6381…),預設埠是6379。 每個節點對應一個Redis配置檔案,如: redis6380.conf、redis6381.conf #cp redis.conf

JDK5的ProcessBuilder介紹使用例項

                原文地址:http://www.java2000.net/p9751JDK地址:http://www.java2000.net/doc/jdk6_cn/java/lang/ProcessBuilder.html一、JDK中的介紹摘錄此類用於建立作業系統程序。每個 Process

springboot 整合mybatis,mapper介面對應的mapper對映檔案放在同一個包配置

一、springboot整合mybatis後,需要進行幾個步驟的配置: 1、mapper包下的mapper介面都需要新增@Mapper註解。 2、啟動類上面新增@MapperScan(basepackages={"com.web.mapper"})註解。 3、需要在po

WebService的基本介紹呼叫例項

本文由Markdown語法編輯器編輯完成。 1. WebService的基本介紹 傳統上,我們把計算機後臺程式(Daemon)提供的功能,稱為”服務”(service)。比如,讓一個防毒軟體在後臺執行,它會自動監控系統,那麼這種自動監控就是一個”服務”。通俗

Spring-boot中讀取核心配置檔案application自定義properties配置檔案的方式

前言:瞭解過spring-Boot這個技術的,應該知道Spring-Boot的核心配置檔案application.properties,當然也可以通過註解自定義配置檔案**.properties的資

【筆記】 Spring Boot [ 3 ] 之命令列啟動方式啟用不同的配置檔案

命令列啟動方式 在springboot專案的根目錄下執行 mvn spring-boot:run 或 mvn install cd target java -jar xxx.jar

Maven中的-D(Properties屬性)-P(Profiles配置檔案

-D代表(Properties屬性) 使用命令列設定屬性-D的正確方法是: mvn -DpropertyName=propertyValue clean package 如果propertyName不存在pom.xml,它將被設定。如果propertyName已經存在pom.xml,其值將被作為引數傳遞

Linux Epoll介紹程式例項

1. Epoll是何方神聖? Epoll可是當前在Linux下開發大規模併發網路程式的熱門人選,Epoll 在Linux2.6核心中正式引入,和select相似,其實都I/O多路複用技術而已,並沒有什麼神祕的。 其實在Linux下設計併發網路程式,向來不缺少方法,比如典型的

linux的apache在httpd.conf配置目錄別名include引入自配置檔案配置的方法

需求:將web服務中路徑名較長的目錄設定別名,方便使用者訪問 首先確定iptables服務和selinux都已關閉!!!!! 首先確定iptables服務和selinux都已關閉!!!!! 首先確定iptables服務和selinux都已關閉!!!!! 重要的事情,說三遍!

MyBatis簡單例項配置檔案解析

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/

linux部署執行kettle——(配置檔案、動態獲取、後臺執行)

一.部署準備 1.1 java安裝(略) 1.2 JDK配置         1.命令列鍵入“cd /etc”進入etc目錄 2.命令列鍵入“vi profile”開啟profile檔案 3.敲擊鍵盤ctrl+F到檔案末尾 4.在末尾處,即第一個~的地方,敲擊鍵盤

Semaphore的介紹使用例項

Semaphore可以用來控制能夠同時發給你問某個特定資源的活動的數量或者同時給定操作的數量。計數訊號量可以用來實現資源池或者一個容器限定邊界。 一個Semaphore管理一個有效許可集合。許可的初始量通過建構函式傳遞給Semaphore,活動可以獲取許可(只要還有剩餘的許

EhCache 介紹在spring中配置

<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehca