代码:
package com.logTest;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.apache.log4j.Logger;
public class Log4jDemo {
privatestatic Loggerlogger = Logger.getLogger(Log4jDemo.class);
publicstaticvoid main(String[] args) {
String content;
try {
FileReader fileReader = new FileReader("d:\\a.txt");
BufferedReader bufferdReader = new BufferedReader(fileReader);
while((content = bufferdReader.readLine()) !=null){
logger.info(content);
}
} catch (FileNotFoundException e) {
logger.warn("file is not fined!");
//e.printStackTrace();
} catch (IOException e) {
logger.warn("read file error!");
//e.printStackTrace();
}
}
}
出现:
log4j:WARN No appenders could be found for logger (com.logTest.Log4jDemo).
log4j:WARN Please initialize the log4j system properly.
解决办法:
log4j.properties文件需要放到web-inf/class目录下面,在eclipse里面放到src目录下面,会自动拷贝到class目录下面去。文件里面的内容如下即可:
###set output encoding###
log4j.appender.logfile.encoding=UTF-8
### set log levels ###
log4j.rootLogger = debug,stdout,D,E
### out print at console ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE}%5p[%c{1}]:%L-%m%n
### write in log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = c:/test.log//
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-ddHH:mm:ss}[%t:%r]-[%p]%m%n
### save error log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = c:/error.log//
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-ddHH\:mm\:ss}[%t\:%r]-[%p]%m%n