java log4j 加载配置文件_【log4j2 加载配置文件】 加载配置文件的三种方法

本文详细介绍了Java中Log4j2框架加载配置文件的三种方式:默认加载src下的配置文件、通过绝对路径加载配置文件以及通过相对路径加载配置文件。通过示例代码展示了如何使用ConfigurationSource类的不同构造函数进行配置。
摘要由CSDN通过智能技术生成

1 packagecom.herman.test;2

3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.net.URL;6

7 importorg.apache.logging.log4j.LogManager;8 importorg.apache.logging.log4j.Logger;9 importorg.apache.logging.log4j.core.config.ConfigurationSource;10 importorg.apache.logging.log4j.core.config.Configurator;11

12 public classConfigTest {13

14 private static Logger logger = LogManager.getLogger(ConfigTest.class);15 /**

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

19

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

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

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

27 }28

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

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

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

37 source = new ConfigurationSource(new FileInputStream("D:\\log4j2.xml"));38

39 //方法2 使用 public ConfigurationSource(InputStream stream, File file)构造函数

40 File config=new File("D:\\log4j2.xml");41 source = new ConfigurationSource(newFileInputStream(config),config);42

43 //方法3 使用 public ConfigurationSource(InputStream stream, URL url) 构造函数

44 String path="D:\\log4j2.xml";45 source = new ConfigurationSource(new FileInputStream(path),newFile(path).toURL());46

47 //source.setFile(new File("D:\log4j2.xml"));48 //source.setInputStream(new FileInputStream("D:\log4j2.xml"));

49 Configurator.initialize(null, source);50 Logger logger = LogManager.getLogger(ConfigTest.class.getName());51 logger.trace("trace...");52 logger.debug("debug...");53 logger.info("info...");54 logger.warn("warn...");55 logger.error("error...");56 logger.fatal("fatal...");57 //一下是运行效果

58 /*2014-09-01 16:03:07,331 DEBUG [main] test.ConfigTest (ConfigTest.java:42) - debug...59 2014-09-01 16:03:07,331 INFO [main] test.ConfigTest (ConfigTest.java:43) - info...60 2014-09-01 16:03:07,331 WARN [main] test.ConfigTest (ConfigTest.java:44) - warn...61 2014-09-01 16:03:07,331 ERROR [main] test.ConfigTest (ConfigTest.java:45) - error...62 2014-09-01 16:03:07,331 FATAL [main] test.ConfigTest (ConfigTest.java:46) - fatal...*/

63 } catch(Exception e) {64 e.printStackTrace();65 }66 }67

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

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

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

74 String path="/com/herman/config/log4j2.xml";75 URL url=ConfigTest.class.getResource(path);76 source = new ConfigurationSource(new FileInputStream(newFile(url.getPath())),url);77 Configurator.initialize(null, source);78

79 //方法2 使用System.getProperty

80 String config=System.getProperty("user.dir");81 source = new ConfigurationSource(new FileInputStream(config+"\\src\\com\\herman\\config\\log4j2.xml"));82 Configurator.initialize(null, source);83

84 //输出内容

85 /*2014-09-01 16:32:19,746 DEBUG [main] test.ConfigTest (ConfigTest.java:53) - debug...86 2014-09-01 16:32:19,746 INFO [main] test.ConfigTest (ConfigTest.java:54) - info...87 2014-09-01 16:32:19,746 WARN [main] test.ConfigTest (ConfigTest.java:55) - warn...88 2014-09-01 16:32:19,746 ERROR [main] test.ConfigTest (ConfigTest.java:56) - error...89 2014-09-01 16:32:19,746 FATAL [main] test.ConfigTest (ConfigTest.java:57) - fatal...*/

90 } catch(Exception e) {91 e.printStackTrace();92 }93 }94

95 public static voidmain(String[] args) {96 //test0();97 //test1();

98 test2();99 }100 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值