这是我的学生用于测试log4j的类。Log4j运行jar文件时不会创建日志
public class Student{
private static final Logger logger = Logger.getLogger(Student.class.getName());
public Student() {
PropertyConfigurator.configure("log4j.properties");
}
public static void main(String args[]){
logger.log(Level.INFO, "My log4j Test");
}
}
这是我log4j.properties文件
log4j.rootLogger=INFO,Appender1,Appender2
log4j.appender.Appender1=org.apache.log4j.ConsoleAppender
log4j.appender.Appender2=org.apache.log4j.RollingFileAppender
log4j.appender.Appender2.File=C:/Log4j/MyLogExample.log
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout`
log4j.appender.Appender1.Target=System.out`
log4j.appender.Appender1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n`
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout`
log4j.appender.Appender2.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n`
log4j.appender.Appender2.MaxFileSize=50KB`
log4j.appender.Appender2.MaxBackupIndex=10`
当我运行使用Eclipse MyLogExample.log文件这一计划被创建。但是,在我创建了一个jar文件并使用命令提示符运行它之后,日志文件不会被创建。
在控制台中我可以看到这个错误。
log4j:ERROR Could not read configuration file [log4j.properties].
java.io.FileNotFoundException: log4j.properties (The system cannot find the file specified)
添加下面的代码示例后,即使在使用命令提示符运行jar文件时也会创建日志文件。
PropertyConfigurator.configure("C:\\eclipeworkspace\\Log4jTest\\log4j.properties");
我如何给出相对路径而不是精确路径?
或者稍微短一些:'PropertyConfigurator.configure(classLoader.getResource(“log4j.properties”));'。 @Pradeep这个假设'Log4jTest'目录在类路径上,所以你必须检查你的eclipse项目配置。 – 2012-07-20 06:09:30
我已添加此代码段 ClassLoader classLoader = Thread.currentThread()。getContextClassLoader(); PropertyConfigurator.configure(classLoader.getResource(“log4j.properties”)); 但仍然相同的错误? – 2012-07-20 06:40:53
log4j:错误无法从URL [null]读取配置文件。 – 2012-07-20 07:08:08