java读取log4j配置文件路径_Log4j 2.0读取配置文件的方法

package com.herman.test;

import java.io.File;

import java.io.FileInputStream;

import java.net.URL;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

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

import org.apache.logging.log4j.core.config.Configurator;public classConfigTest {private static Logger logger = LogManager.getLogger(ConfigTest.class);/**

* log4j 2读取配置文件

* log4j 2读取的配置文件可以分为三类:src下的配置文件、绝对路径的配置文件、相对路径的配置文件*/

//第一类 加载src下的配置文件

public static voidtest0(){//src下的配置文件会默认的被log4j的框架加载,我们就不显示的加载了//直接测试

logger.info("我打印了.......");//输出内容//2014-09-01 15:49:30,229 INFO [main] test.ConfigTest (ConfigTest.java:18) - 我打印了.......

}//第二类 绝对路径的配置文件

public static voidtest1(){//我们将log4j2.xml放在D盘下//这是需要手动的加载//绝对路径配置文件

ConfigurationSource source;try{//方法1 使用 public ConfigurationSource(InputStream stream) throws IOException 构造函数

source = new ConfigurationSource(new FileInputStream("D:\\log4j2.xml"));//方法2 使用 public ConfigurationSource(InputStream stream, File file)构造函数

File config=new File("D:\\log4j2.xml");

source= new ConfigurationSource(newFileInputStream(config),config);//方法3 使用 public ConfigurationSource(InputStream stream, URL url) 构造函数

String path="D:\\log4j2.xml";

source= new ConfigurationSource(new FileInputStream(path),newFile(path).toURL());//source.setFile(new File("D:\log4j2.xml"));//source.setInputStream(new FileInputStream("D:\log4j2.xml"));

Configurator.initialize(null, source);

Logger logger= LogManager.getLogger(ConfigTest.class.getName());

logger.trace("trace...");

logger.debug("debug...");

logger.info("info...");

logger.warn("warn...");

logger.error("error...");

logger.fatal("fatal...");//一下是运行效果

/*2014-09-01 16:03:07,331 DEBUG [main] test.ConfigTest (ConfigTest.java:42) - debug...

2014-09-01 16:03:07,331 INFO [main] test.ConfigTest (ConfigTest.java:43) - info...

2014-09-01 16:03:07,331 WARN [main] test.ConfigTest (ConfigTest.java:44) - warn...

2014-09-01 16:03:07,331 ERROR [main] test.ConfigTest (ConfigTest.java:45) - error...

2014-09-01 16:03:07,331 FATAL [main] test.ConfigTest (ConfigTest.java:46) - fatal...*/}catch(Exception e) {

e.printStackTrace();

}

}//第三类 相对路径的配置文件加载

public static voidtest2(){//这里需要注意路径中不要出现中文和空格,如果存在中文,请使用url转码

ConfigurationSource source;try{//方法1 使用getResource()

String path="/com/herman/config/log4j2.xml";

URL url=ConfigTest.class.getResource(path);

source= new ConfigurationSource(new FileInputStream(newFile(url.getPath())),url);

Configurator.initialize(null, source);//方法2 使用System.getProperty

String config=System.getProperty("user.dir");

source= new ConfigurationSource(new FileInputStream(config+"\\src\\com\\herman\\config\\log4j2.xml"));

Configurator.initialize(null, source);//输出内容

/*2014-09-01 16:32:19,746 DEBUG [main] test.ConfigTest (ConfigTest.java:53) - debug...

2014-09-01 16:32:19,746 INFO [main] test.ConfigTest (ConfigTest.java:54) - info...

2014-09-01 16:32:19,746 WARN [main] test.ConfigTest (ConfigTest.java:55) - warn...

2014-09-01 16:32:19,746 ERROR [main] test.ConfigTest (ConfigTest.java:56) - error...

2014-09-01 16:32:19,746 FATAL [main] test.ConfigTest (ConfigTest.java:57) - fatal...*/}catch(Exception e) {

e.printStackTrace();

}

}public static voidmain(String[] args) {//test0();//test1();

test2();

}

}

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

疯狂的Java说书酱

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值