依賴包:log4j-1.2.17.jar
測試代碼:
package cn.com.agree.hx.logger.test;
import java.io.File;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.spi.LoggerRepository;
public class LoggerTest {
private static Logger logger = Logger.getLogger(LoggerTest.class);
static {
// logger.setAdditivity(additive);
String configPath = System.getProperty("user.dir") + File.separator + "config"+ File.separator + "log4j.properties";
PropertyConfigurator.configure(configPath);
LoggerRepository loggerRepository = logger.getLoggerRepository();
Level level = loggerRepository.getRootLogger().getLevel();
System.out.println(level.toInt());
loggerRepository.getRootLogger().setLevel(Level.DEBUG);
// Level level2 = loggerRepository.getRootLogger().getLevel();
// System.out.println(level2.toInt());
// logger.setLevel(Level.INFO);
}
public void testLoggerDebug() {
logger.debug("debug");
logger.info("info");
logger.warn("warn");
logger.error("error");
logger.fatal("fatal");
try {
throwException();
}catch (Exception e) {
logger.error("出現的錯誤:", e);
}
}
public void throwException() throws Exception {
throw new Exception();
}
public static void main(String[] args) {
LoggerTest loggerTest = new LoggerTest();
loggerTest.testLoggerDebug();
}
}
log4j的配置文件:config/log4j.properties
#log4j.rootLogger = INFO
log4j.rootLogger = INFO,stdout1
log4j.appender.stdout1 = org.apache.log4j.ConsoleAppender
log4j.appender.stdout1.Target = System.out
log4j.appender.stdout1.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout1.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method: %l%n %m%n
#log4j.logger.cn.com.agree.hx.logger.test.test2 = ERROR,tt2
#log4j.additivity.cn.com.agree.hx.logger.test.test2=false
#log4j.appender.tt2= org.apache.log4j.RollingFileAppender
#log4j.appender.tt2.File = ./logs/log.log
#log4j.appender.tt2.Append = true
#log4j.appender.tt2.layout = org.apache.log4j.PatternLayout
#log4j.appender.tt2.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method: %l%n %m%n
log4j.logger.cn.com.agree.hx.logger.test=info,tt
log4j.additivity.cn.com.agree.hx.logger.test = false # false,不繼承rootLogger的特性
log4j.appender.tt= org.apache.log4j.RollingFileAppender
log4j.appender.tt.File=./logs/log_test.log
log4j.appender.tt.layout=org.apache.log4j.PatternLayout
log4j.appender.tt.layout.ConversionPattern=[ %t:%-20r ] %d{DATE} %5p %t %X{url} %c{1}:%M - %m%n
log4j.appender.tt.bufferedIO=false
log4j.appender.tt.MaxFileSize=50KB
log4j.appender.tt.MaxBackupIndex=10
log4j.appender.tt.encoding=UTF-8
log4j.logger.cn.com.agree.hx.logger.test.test2=info,CL
log4j.additivity.cn.com.agree.hx.logger.test.test2 = false # false,不繼承rootLogger的特性
log4j.appender.CL= org.apache.log4j.RollingFileAppender
log4j.appender.CL.File=./logs/log.log
log4j.appender.CL.layout=org.apache.log4j.PatternLayout
log4j.appender.CL.layout.ConversionPattern=[ %t:%-20r ] %d{DATE} %5p %t %X{url} %c{1}:%M - %m%n
log4j.appender.CL.bufferedIO=false
log4j.appender.CL.MaxFileSize=50KB
log4j.appender.CL.MaxBackupIndex=10
log4j.appender.CL.encoding=UTF-8