Log4j는 서로 다른 logger의 동적 설정에 서로 다른 설정을 부여합니다
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import org.apache.log4j.Hierarchy;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.spi.LoggerRepository;
import org.apache.log4j.spi.RootLogger;
public class TestLog4j {
public static void main(String[] args) {
PropertyConfigurator pc = new PropertyConfigurator();
Properties p = new Properties();
LoggerRepository lr1 = null;
LoggerRepository lr2 = null;
Logger logger1 = new RootLogger(Level.ALL);
Logger logger2 = new RootLogger(Level.ALL);
try {
//p.load(new FileInputStream("log4j.properties"));
p.load(TestLog4j.class.getResourceAsStream("log4j.properties"));
lr1 = new Hierarchy(logger1);
lr2 = new Hierarchy(logger2);
p.setProperty("log4j.appender.D.File", "D:/test1.log");
pc.doConfigure(p, lr1);
p.setProperty("log4j.appender.D.File", "D:/test2.log");
pc.doConfigure(p, lr2);
logger1.info("hello world logger1");
logger2.info("hello world logger2");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
property 파일은 다음과 같습니다.
### set log levels ###
log4j.rootLogger = debug , stdout , D
### ###
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
### ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D:/logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = D:/logs/error.log ##
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## ERROR !!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
실행 후 동적 생성 가능: D:/test1.log 및 D:/test2.log.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Log4j는 서로 다른 logger의 동적 설정에 서로 다른 설정을 부여합니다지금 로고4j가 있어요.properties 프로필, logger 설정을 동적으로 바꾸고 다른 디렉터리로 동적으로 출력하려면 다음과 같은 코드로 조작할 수 있습니다. property 파일은 다음과 같습니다. 실행 후 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.