新建TestLog.java
package testLog;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class TestLog {
static Logger logger = Logger.getLogger(TestLog.class.getName());
public static void main(String[] args) {
PropertyConfigurator pc = new PropertyConfigurator();
pc.configure("D:/log4j.properties");// log4j.properties配置文件位置
//DEBUG < INFO < WARN < ERROR < FATAL
logger.debug("Debug ...");
logger.info("Info ...");
logger.warn("Warn ...");
logger.error("Error ...");
}
}
配置log4j.properties文件内容如下:
#### Use one appender to log to console
##DEBUG < INFO < WARN < ERROR < FATAL
log4j.rootCategory=INFO, stdout, S
#### Appender writes to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %5p(%F:%L) - %m%n
#### Appender writes to file
log4j.appender.S=org.apache.log4j.DailyRollingFileAppender
log4j.appender.S.File=D:\\converswf
log4j.appender.S.layout=org.apache.log4j.PatternLayout
log4j.appender.S.DatePattern ='.'yyyy-MM-dd'.log'
log4j.appender.S.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} %m%n
log4j.properties中配置“log4j.rootLogger=INFO, stdout, S”的作用是控制显示出来的信息。此句为将等级为INFO的日志信息输出到stdout和S这两个目的地,stdout和S的定义在下面的代码,可以任意起名。等级可分为OFF、 FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息。
Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)