如何自定义获取log4j的配置文件

来源:互联网 发布:网络综艺 传统电视剧 编辑:程序博客网 时间:2024/06/05 06:52

默认情况下我们会使用log4j.properties这个作为配置文件,放在bin目录下面,但是如果我们把工程打包成一个jar包(或者是服务),则代码从哪里获取配置配置文件呢?我在网上查询了相关资料,觉得有点意思,加上自己的总结,简单描述一下。

 

1.         配置文件的加载是在第一次使用,因此在系统工程第一次使用log4j的时候就要指明加载的配置文件的路径

 

2.         linux服务器上使用的是相对路径,可以指明配置文件的方法

 

第一种方式:

//指明配置文件的加载目录加载.properties文件

PropertyConfigurator.configure("E://log4j.properties");

 

第二种方式:

/**

     * 初始化log4j配置信息

     * @throws Exception

     */

    public static void initLog4j() throws Exception

    {

       FileInputStream istream = null;

       try

       {

           Properties props = new Properties();

//指明了获取配置文件的路径

           istream = new FileInputStream("conf/log4j.properties");

           props.load(istream);//从输入流中读取属性列表

           PropertyConfigurator.configure(props);

       } catch (Exception ex)

       {

           log.error("initLog4j.error:", ex);

           throw new Exception(ex);

       } finally

       {

           istream.close();

       }

    }

 

使用上面的方法可以实现动态的添加配置信息

如何实现动态的指定Log存放的路径,即不用写死?

1、  将配置文件中的指定路径删除掉

2、  指明参数的配置路径

props.put("log4j.appender.file.File", sc.getRealPath("/log/hb.log")); 

 

log4j.appender.file.File=dd/test.log

表示在当前工程下面建立一个dd文件夹,里面有test.log文件,即dd目录与Bin目录同等级

 

原创粉丝点击