今天在学习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同一文件夹下。
分享到:
相关推荐
这样,我们就可以在log4j加载配置文件之前,先用System.setProperty ("WORKDIR", WORKDIR);设置好根路径,此操作可通过一初始的servlet进行。 方法二、 可以使用服务器环境变量 log4j的配置文件支持服务器的vm的...
本文档提供log4j配置相对路径三种方法:log4j.properties文件配置、xml文件配置和通过servlet初始化方式来配置,希望对大家有所帮助
NULL 博文链接:https://1017401036.iteye.com/blog/2332210
完全相对路径的log4j配置: 配置文件相对,及日志文件相对. 不过使用的是properties,总觉得用XML配置是好点的做法
log4j日志文件的JAR包及配置文件。 使用log4j日志文件的步骤: Step1:添加日志文件所需要的JAR包; Step2:添加日志的配置文件; Step3:创建日志对象,使用日志对象的方法记录日志。
一直在使用log4j。输出到文件的方式配置log4j。 这是一个最简单的实现上述功能的eclipse工程。
另一种是动态配置,Log4j提供了PropertyConfigurator.configure(……)来动态配置,参数可以是一个properties文件所在路径的String对象,可以是一个properties文件所在路径的URL对象,也可以是一个properties对象。...
log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置) 一、场景和需求 假设我现在有3个独立的用project(暂时用maven关联起来,当然也可以不用maven),一个是提供公共服务的...
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...
log4j的配置文件,包含配置多个日志文件,设置文件大小,路径
主要介绍了详解Log4j 日志文件存放位置设置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
重写log4j流记录日志到指定文件采用了xml,properties文件配置,日志记录容量达到指定配置文件最大容量大小,自动增加新日志文件,配置简单。只需要把log4.xml,log4j.properties文件复制到src目录中,源码文件放在...
定义了一个名为“baseDir”的属性,其值为"./logs",用于配置日志文件的存储路径。 配置了三个日志输出器,分别是控制台输出器“Console”以及三个文件输出器“debug_appender”、“info_appender”和“error_...
通过初始化servlet,在文件里输出你想要的自定义信息,方便的调试功能,输出任意级别的错误.这是个jsp的日志文件配置
本项目使用前端技术结合easyUI,后端使用spring+springmvc+mybatis,log4j日志文件配置(带注释解析)
maven管理的ssm项目的配置文件,在这个文件夹中有mybatis、spring、springmvc、log4j配置文件。 [图片]
最新版log4cxx工具包,用于c++环境下log日志的打印输出,适用于linux环境,使用时需要配合log4j配置文件,定义日志输出级别和输出路径
log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序...
2、针对日志文件,由于此文件记录量,增加一个log4j中的DailyRollingFileLogger,每天做日志,并且增加一个属性在配置文件中maxfilesize=500(kb),超过此文件的最大值,系统重新生成一个文件。输入的日志格式采用...
2. 程序用log4j记录日志,日志分正常信息跟错误信息两个级别,日志文件存放在log4j文件夹下。考虑到文件很多,日志解压、移动文件每解压、移动1000个记录一次,合并、删除文件每合并、删除50000个记录一次, 3. 启动...