我已经把log4j放到了我的buildpath中,但是当我运行我的应用程序时,我得到了以下消息:
log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这些警告是什么意思?这里的阑尾是什么?
考虑log4j JVM参数Dlog4j.configuration
一般来说:
添加指向log4j配置文件的JVM参数。
语法如下:
java [ options ] -jar file.jar [ arguments ]
一个真实的命令行示例如下所示:
java -Dlog4j.configuration=conf/log4j.xml -jar myJarFile.jar myArg1 myArg2
对于IntelliJ IDE用户:
1.Run/Debug Configurations
2.Edit configurations...
3.VM options
4.Enter the same value also starting with "-D"
小贴士:
1.Eclipse IDE用户将找到等效的方法
2.对于运行/调试配置编辑器,很可能在开始时,您的特定可执行文件不存在。根据您当前正在处理的项目的大小,在目录中找到它可能会令人不快。如果在继续运行/调试配置之前只运行/执行一次文件(单击play),无论执行结果是什么,都不会太麻烦。
3.请注意您的工作目录、相对路径和类路径。
这个简短的log4j介绍指南有点旧,但仍然有效。
该指南将为您提供一些关于如何使用记录器和附加程序的信息。
你可以采用两种简单的方法。
首先是将这一行添加到你的main方法中:
BasicConfigurator.configure();
第二种方法是添加这个标准log4j。属性(从上面提到的指南)文件到你的类路径:
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
如前所述,有两种方法
首先是将这一行添加到你的main方法中:
BasicConfigurator.configure();
第二种方法是添加这个标准log4j。属性文件到你的类路径:
在采用第二种方法时,你需要确保正确地初始化了文件,
如。
Properties props = new Properties();
props.load(new FileInputStream("log4j property file path"));
props.setProperty("log4j.appender.File.File", "Folder where you want to store log files/" + "File Name");
确保创建了存储日志文件所需的文件夹。
我在使用log4j2时也遇到了同样的问题。我的问题是由使用错误的依赖库引起的:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<scope>runtime</scope>
</dependency>
相反,我应该使用:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<scope>runtime</scope>
</dependency>
在我的情况下,我有一个log4j2.xml定义在我的“资源”目录,并指定使用它:
System.setProperty("log4j.configurationFile", "log4j2.xml");