【发布时间】:2013-12-11 11:41:51
【问题描述】:
我是 Log4j API 的新手。因此,我配置了属性文件并编写了示例程序来测试它。下面是我的配置文件和测试类。
< ?xml version="1.0" encoding="UTF-8" ?>
<!--<span class="hiddenSpellError" pre=""-->DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
-5p %c %x - %m%n"/>
</layout>
</appender>
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="./logs/testlog.log"/>
<layout class="org.apache.log4j.PatternLayout">
-5p %c %p - %m%n"/>
</layout>
</appender>
<root>
<priority value ="trace"></priority>
<appender-ref ref="console"></appender>
<appender-ref ref="fileAppender"></appender>
</root>
</log4j:configuration>
样本测试类是
public class Log4jExample {
private static Logger logger=Logger.getLogger("Project_name");
public static void main(String[] args){
try{
FileInputStream fstream =
new FileInputStream("D:\\textfile.txt");
// use DataInputStream to read binary NOT text
// DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
while ((strLine = br.readLine()) != null){
System.out.println (strLine);
}
in.close();
}catch (FileNotFoundException fe){
logger.error("File Not Found",fe);
logger.warn("This is a warning message");
logger.trace("This message will not be logged since log level is set as DEBUG");
}catch (IOException e){
logger.error("IOEXception occured:", e);
}
}
}
我在 netbeans 中工作,它显示 logger.error、logger.trace、logger.warn 是“无法归档符号”错误。请就这个问题提出建议。
【问题讨论】:
-
将 log4j 添加到你的类路径
-
确保导入
org.apache.log4j.Logger -
收到此错误。 java.lang.NoClassDefFoundError: org/slf4j/ILoggerFactory