log4j 2读取的配置文件可以分为三类:src下的配置文件、绝对路径的配置文件、相对路径的配置文件。
 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 class ConfigTest { private static Logger logger = LogManager.getLogger(ConfigTest.class);
/**
* log4j 2读取配置文件
* log4j 2读取的配置文件可以分为三类:src下的配置文件、绝对路径的配置文件、相对路径的配置文件
*/ //第一类 加载src下的配置文件
public static void test0(){
//src下的配置文件会默认的被log4j的框架加载,我们就不显示的加载了
//直接测试
logger.info("我打印了.......");
//输出内容
//2014-09-01 15:49:30,229 INFO [main] test.ConfigTest (ConfigTest.java:18) - 我打印了.......
} //第二类 绝对路径的配置文件
public static void test1(){
//我们将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(new FileInputStream(config),config); //方法3 使用 public ConfigurationSource(InputStream stream, URL url) 构造函数
String path="D:\\log4j2.xml";
source = new ConfigurationSource(new FileInputStream(path),new File(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 void test2(){
//这里需要注意路径中不要出现中文和空格,如果存在中文,请使用url转码
ConfigurationSource source;
try {
//方法1 使用getResource()
String path="/com/herman/config/log4j2.xml";
URL url=ConfigTest.class.getResource(path);
source = new ConfigurationSource(new FileInputStream(new File(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 void main(String[] args) {
//test0();
//test1();
test2();
}
}

【log4j2 加载配置文件】 加载配置文件的三种方法的更多相关文章

  1. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  2. flask加载配置文件的三种方法

    1.第一种方法也是我们最长用到的,包括我们项目中也是采用第一种的方法,加载配置文件 配置信息全部写在config.py里面,在主app.py的文件中写入 import config app.confi ...

  3. jquery动态加载js三种方法实例

    这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getScript(\"test.js\" ...

  4. VC中加载LIB库文件的三种方法

    VC中加载LIB库文件的三种方法 在VC中加载LIB文件的三种方法如下: 方法1:LIB文件直接加入到工程文件列表中   在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中&quo ...

  5. (一)JQuery动态加载js的三种方法

    Jquery动态加载js的三种方法如下: 第一种: $.getscript("test.js"); 例如: <script type="text/javascrip ...

  6. VC6.0加载lib文件的三种方法

    MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢? 静态链接库是要先把程序中所需要使用的函数编译 ...

  7. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  8. vue自定义指令,比onerror更优雅的方式实现当图片加载失败时使用默认图,提供三种方法

    首先,来看下效果图(演示一下图片正常加载与加载失败时的效果) 在线体验地址:https://hxkj.vip/demo/vueImgOnerror/ 一.常规方法解决 我们都知道,img标签支持one ...

  9. 加载properties文件的三种方法

    源代码: package a.one; import java.io.FileInputStream; import java.io.InputStream; import java.util.Pro ...

随机推荐

  1. HttpResponse对象

    为了响应客户端的请求,同样定义了代表响应的类:HttpResponse类,它也定义在命名空间System.Web下,提供向客户端响应的方法和属性. HttpResponse常用属性和方法 响应对象用于 ...

  2. C++ 中map 中迭代器的简单使用:

    public member function <map> std::map::find iterator find (const key_type& k); const_itera ...

  3. Windows下安装配置SubVersion的简明步骤

    [使用的安装程序和文档说明] svn-1.4.0-setup.exe:Subversion服务端1.4.0安装程序: SubService.rar:  SubServe服务Windows辅助工具; T ...

  4. LUA之string的使用

    --string.len(s)          --返回字符串s的长度 --string.rep(s, n)--返回重复n次字符串s的串,你使用string.rep("a", 2 ...

  5. hibernate中的session缓存

    1.什么是session缓存? 在 Session 接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了 Session 缓存. 只要 Session 实例没有结束生命周期, 且没有 ...

  6. fastjson 的使用

    json解析:[2]fastjson 使用 http://jingyan.baidu.com/article/c74d6000672e450f6b595d53.html 利用阿里的fastjson包对 ...

  7. Insertion Sort List

    对链表进行插入排序,比对数组排序麻烦一点. ListNode *insertSortList(ListNode *head) { ListNode dummy(-); for (ListNode *c ...

  8. Linux时间同步配置方法

    由于是在做mongoDB的实验中再一次的遇到了mongos路由节点同步时由于ntp时间的问题导致同步非常的慢.故写了个时间同步的语句===> while :; do rdate -s 192.1 ...

  9. 【Network】一张图看懂 Reactor 与 Proactor 模型的区别

    首先来看看Reactor模式,Reactor模式应用于同步I/O的场景.我们以读操作为例来看看Reactor中的具体步骤:读取操作:1. 应用程序注册读就需事件和相关联的事件处理器2. 事件分离器等待 ...

  10. 【Other】千字文 硬笔 楷书 字帖

    <千字文>是我国最优秀的一篇训蒙教材,用一千个汉字勾划出一部完整的中国文化史的基本轮廓,代表了中国传统教育启蒙阶段的最高水平.<千字文>通篇首尾连贯,音韵谐美,读起来朗朗上口, ...