`
failure5152
  • 浏览: 5277 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

log4j配置文件路径问题

阅读更多

  今天在学习log4j,建的是eclipse中的java工程,source文件夹是src,class文件存放在bin目录下。建了个 com.logger.SimppleLogging类。log4j.properties并没有存放在src文件下,而是存放在和SimppleLogging同个包下。通过设置log4j.configuration这个系统属性来告诉LogManager到哪加载配置文件。查看了下源码,发现LogManager是先通过file来加载,之后是用classLoader来加载的。所以第一次我先使用classLoader来加载:

System.setProperty("log4j.configuration", "com/logger/log4j.properties");

 这个时候能够加载到。第二次使用该文件的绝对路径加载:

System.setProperty("log4j.configuration", "E:/project/j2se/src/com/logger/log4j.properties");

但是这样LogManager并没有加载到该配置文件,查看LogManager源码,发现LogManager是通过构造java.net.URL去加载的,由于URL没有识别出该协议。在前面加上file:后,LogManager加载到了配置文件:

System.setProperty("log4j.configuration", "file:E:/project/j2se/src/com/logger/log4j.properties");

由于配置的是绝对路径,所以不通用。当时在网上查到两种方法取得该类所在目录:

this.getClass().getResource("/")//第一种
File file = new File(".");
file.getAbsolutePath();//第二种

 但通过打印发现第一种方法返回的是我的bin文件夹所在的url(带有file:),而第二种方法返回的是user.dir\.于是使用第一种方法能够满足我的需求:

System.setProperty("log4j.configuration", SimppleLogging.class.getResource("/com/logger").toString() + "/log4j.properties");

 SimppleLogging.class.getResource("/")返回的是bin文件夹,加上/com/logger就为SimppleLogging.class所在的目录,而log4j.properties也位于SimppleLogging.class同一文件夹下。

分享到:
评论
1 楼 lingyunlujixin 2010-01-12  
不错。我今天正好遇到这个问题。不来以为拖到明天解决了。看了你的博客。一下子理解了。,
感谢。

相关推荐

    log4j中配置日志文件相对路径方法分析

    这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDIR);设置好根路径,此操作可通过一初始的servlet进行。 方法二、 可以使用服务器环境变量 log4j的配置文件支持服务器的vm的...

    log4j中配置日志文件相对路径方法(PDF)

    本文档提供log4j配置相对路径三种方法:log4j.properties文件配置、xml文件配置和通过servlet初始化方式来配置,希望对大家有所帮助

    log4j(二):动态配置日志输出路径

    NULL 博文链接:https://1017401036.iteye.com/blog/2332210

    0积分:完全相对路径的log4j配置

    完全相对路径的log4j配置: 配置文件相对,及日志文件相对. 不过使用的是properties,总觉得用XML配置是好点的做法

    log4j日志文件的JAR包及配置文件

    log4j日志文件的JAR包及配置文件。 使用log4j日志文件的步骤: Step1:添加日志文件所需要的JAR包; Step2:添加日志的配置文件; Step3:创建日志对象,使用日志对象的方法记录日志。

    log4j的eclipse工程,输出到文件的方式配置log4j

    一直在使用log4j。输出到文件的方式配置log4j。 这是一个最简单的实现上述功能的eclipse工程。

    使用log4j进行日志记录

    另一种是动态配置,Log4j提供了PropertyConfigurator.configure(……)来动态配置,参数可以是一个properties文件所在路径的String对象,可以是一个properties文件所在路径的URL对象,也可以是一个properties对象。...

    Log4j 日志文件Linux/Mac/Windows通用存放位置设置方法

    log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一、场景和需求 假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的...

    log4j源码实例及jar 包下载

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    log4j的配置

    log4j的配置文件,包含配置多个日志文件,设置文件大小,路径

    详解Log4j 日志文件存放位置设置

    主要介绍了详解Log4j 日志文件存放位置设置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    重写log4j流记录日志到指定文件

    重写log4j流记录日志到指定文件采用了xml,properties文件配置,日志记录容量达到指定配置文件最大容量大小,自动增加新日志文件,配置简单。只需要把log4.xml,log4j.properties文件复制到src目录中,源码文件放在...

    log4j2的配置案例,可直接使用

    定义了一个名为“baseDir”的属性,其值为"./logs",用于配置日志文件的存储路径。 配置了三个日志输出器,分别是控制台输出器“Console”以及三个文件输出器“debug_appender”、“info_appender”和“error_...

    log4j日志文件配置

    通过初始化servlet,在文件里输出你想要的自定义信息,方便的调试功能,输出任意级别的错误.这是个jsp的日志文件配置

    spring+springmvc+mybatis+结合前端easyUI框架,log4j日志文件配置

    本项目使用前端技术结合easyUI,后端使用spring+springmvc+mybatis,log4j日志文件配置(带注释解析)

    Maven的ssm项目配置文件

    maven管理的ssm项目的配置文件,在这个文件夹中有mybatis、spring、springmvc、log4j配置文件。 [图片]

    apache-log4cxx-0.10.1.zip

    最新版log4cxx工具包,用于c++环境下log日志的打印输出,适用于linux环境,使用时需要配合log4j配置文件,定义日志输出级别和输出路径

    log4cplus 源码(C++编写的开源的日志系统)

    log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序...

    p6spy.jar+配置文件

    2、针对日志文件,由于此文件记录量,增加一个log4j中的DailyRollingFileLogger,每天做日志,并且增加一个属性在配置文件中maxfilesize=500(kb),超过此文件的最大值,系统重新生成一个文件。输入的日志格式采用...

    Java实现zp大文件解压、合并、复制、删除(30万文件大约2个小时)

    2. 程序用log4j记录日志,日志分正常信息跟错误信息两个级别,日志文件存放在log4j文件夹下。考虑到文件很多,日志解压、移动文件每解压、移动1000个记录一次,合并、删除文件每合并、删除50000个记录一次, 3. 启动...

Global site tag (gtag.js) - Google Analytics