반응형
하나의 log4j 구성 파일로 2 개의 별도 로그 파일을 생성하려면 어떻게해야합니까?
내 debugLog와 내 reportsLog가 서로 분리되도록 log4j를 구성하는 방법을 알 수 없습니다 (추가가 아님). 아래 구성에서 reportsLog가 항상 비어있는 이유는 무엇입니까?
log4j.rootLogger=TRACE, stdout, debugLog
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n
log4j.appender.debugLog=org.apache.log4j.FileAppender
log4j.appender.debugLog.File=logs/debug.log
log4j.appender.debugLog.layout=org.apache.log4j.PatternLayout
log4j.appender.debugLog.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n
log4j.reportsLog=DEBUG,reportsLog
log4j.appender.reportsLog=org.apache.log4j.FileAppender
log4j.appender.reportsLog.File=logs/reports.log
log4j.appender.reportsLog.layout=org.apache.log4j.PatternLayout
log4j.appender.reportsLog.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n
그리고 여기에 내 Java 코드가 있습니다.
package test;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class HelloLogger {
static final Logger debugLog = Logger.getLogger("debugLog");
static final Logger resultLog = Logger.getLogger("reportsLog");
public static void main(String[] args) {
PropertyConfigurator.configure("log4j.properties");
debugLog.debug("Hello debugLog message");
resultLog.debug("Hello reportsLog message");
}
}
다음 구성을 시도하십시오.
log4j.rootLogger=TRACE, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n
log4j.appender.debugLog=org.apache.log4j.FileAppender
log4j.appender.debugLog.File=logs/debug.log
log4j.appender.debugLog.layout=org.apache.log4j.PatternLayout
log4j.appender.debugLog.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n
log4j.appender.reportsLog=org.apache.log4j.FileAppender
log4j.appender.reportsLog.File=logs/reports.log
log4j.appender.reportsLog.layout=org.apache.log4j.PatternLayout
log4j.appender.reportsLog.layout.ConversionPattern=%d [%24F:%t:%L] - %m%n
log4j.category.debugLogger=TRACE, debugLog
log4j.additivity.debugLogger=false
log4j.category.reportsLogger=DEBUG, reportsLog
log4j.additivity.reportsLogger=false
그런 다음 그에 따라 Java 코드에서 로거를 구성하십시오.
static final Logger debugLog = Logger.getLogger("debugLogger");
static final Logger resultLog = Logger.getLogger("reportsLogger");
출력을 stdout
하시겠습니까? 그렇지 않은 경우 첫 번째 줄을 다음 log4j.properties
으로 변경하십시오 .
log4j.rootLogger=OFF
그리고 stdout
선을 제거하십시오 .
log4j.properties
그에 따라 파일을 수정하십시오 .
log4j.rootLogger=TRACE,stdout
...
log4j.logger.debugLog=TRACE,debugLog
log4j.logger.reportsLog=DEBUG,reportsLog
필요에 따라 각 로거의 로그 수준을 변경합니다.
반응형
'Nice programing' 카테고리의 다른 글
Haml에서 if 조건을 작성하는 방법은 무엇입니까? (0) | 2020.10.26 |
---|---|
CSS 미디어 쿼리-소프트 키보드가 CSS 방향 규칙을 위반 함-대체 솔루션? (0) | 2020.10.26 |
만드는 방법 (0) | 2020.10.26 |
빌드 전용 장치는이 대상을 실행하는 데 사용할 수 없습니다. (0) | 2020.10.26 |
datetime으로 파이썬에서 UTC 타임 스탬프 가져 오기 (0) | 2020.10.26 |