Log4j 다중 파일에 다른 레벨 로그 정보 저장
이 때 Log4j에서 자체적으로 가지고 있는 파일 생성 정책 유형은 우리의 요구를 만족시킬 수 없습니다. 우리는 관련 클래스를 계승하고 해당하는 방법을 덮어쓰는 클래스를 작성해야 합니다. 다음은 Daily RollingFile Appender를 예로 들겠습니다.
log4j.properties
log4j.rootLogger=INFO,stdout,infoTarget,errorTarget
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss}|%p|%C|%M|%L|%m%n
log4j.appender.infoTarget=com.zws.log.MyDailyRollingFileAppender
log4j.appender.infoTarget.layout=org.apache.log4j.PatternLayout
log4j.appender.infoTarget.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss}|%p|%C|%M|%L|%m%n
log4j.appender.infoTarget.datePattern='.'yyyy-MM-dd
log4j.appender.infoTarget.Threshold = INFO
log4j.appender.infoTarget.append=true
log4j.appender.infoTarget.File=${catalina.home}/logs/app/itc/info.log
log4j.appender.errorTarget=com.zws.log.MyDailyRollingFileAppender
log4j.appender.errorTarget.layout=org.apache.log4j.PatternLayout
log4j.appender.errorTarget.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss}|%p|%C|%M|%L|%m%n
log4j.appender.errorTarget.datePattern='.'yyyy-MM-dd
log4j.appender.errorTarget.Threshold = ERROR
log4j.appender.errorTarget.append=true
log4j.appender.errorTarget.File=${catalina.home}/logs/app/error.log
MyDailyRollingFileAppender.java
package com.zws.log;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Priority;
/**
* ERROR
* @author wensh.zhu
*
*/
public class MyDailyRollingFileAppender extends DailyRollingFileAppender {
@Override
public boolean isAsSevereAsThreshold(Priority priority) {
String level = priority.toString();
if (level.equalsIgnoreCase("ERROR")) {
//this.getThreshold() Threshold
return this.getThreshold().equals(priority);
}
return super.isAsSevereAsThreshold(priority);
}
}
여기에는 두 가지 주의해야 할 점이 있는데, 첫 번째는log4j이다.properties 파일에log4j.appender.infoTarget.Threshold 속성은 반드시 지정해야 합니다. 속성 값은 등급(INFO, ERROR 등)입니다. 뒤에 이 속성으로 파일을 쓸 것인지를 판단해야 합니다. 두 번째는 클래스 My Daily Rolling File Appender가 Daily Rolling File Appender를 계승하고 is Assevere Asthreshold 방법을 다시 썼습니다. 이 방법은 등급이 Threshold 속성 값인 로그 정보를 로그에 쓸 것인지를 결정합니다.이 예에서 오류 로그에 error 방법을 사용할 때, 이 로그 정보는 Threshold 속성 값이 ERROR인 목적지 파일에 기록됩니다. 즉, ${catalina.home}/logs/app/error입니다.로그 파일.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring Boot에서 log4j 로깅 방법Spring Boot은 모든 내부 로그에 Commons Logging을 사용하지만, 기본 설정은 Java Util Logging, Log4J, Log4J2, Logback과 같은 일반적인 로그를 지원합니다.각 Log...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.