Log4j2介绍和特性实例(六)--配置文件不在默认路径下的加载

本文介绍了如何在Java程序中配置Log4j2的日志记录,并通过动态加载方式改变日志级别。通过将配置文件放置于项目根目录而非打包进Jar文件,确保用户能够轻松调整日志设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,有的话删除。

下面将介绍如何在代码中指定日志文件的名字。谢谢。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值