zoukankan      html  css  js  c++  java
  • 【log4j2 加载配置文件】 加载配置文件的三种方法

    log4j2读取的配置文件可以分为三类: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();
    }
    }

  • 相关阅读:
    Yii框架(一)
    phpStorm中使用xdebug断点调试php代码
    在mysql存储过程中拼接sql解决in的字段类型不匹配问题
    openjdk源码阅读导航
    深入理解tomcat9---源码构建
    API权限控制与安全管理
    java虚拟机性能监控调优及原则
    java十年技术栈[总结复习用]
    spring boot配置文件application.propertis
    php危险的函数和类 disable_functions/class
  • 原文地址:https://www.cnblogs.com/aoshicangqiong/p/7651381.html
Copyright © 2011-2022 走看看