반응형
런타임에 사용자 정의 파일에 기록하도록 log4j 구성
누구든지 내가 런타임에 지정한 특정 파일에 로깅하도록 log4j를 구성하는 방법에 대해 안내해 주시겠습니까? 로그 파일의 이름과 경로는 런타임에 생성되며 응용 프로그램은 해당 특정 파일에 로깅해야합니다.
일반적으로 log4j.properties 파일의 파일 어 펜더 항목은 응용 프로그램에서 사용할 로그 파일을 가리 키지 만이 경우 명령 줄에서 로그 파일 경로를 읽고 해당 파일에 기록하고 싶습니다.
이것을 어떻게 달성 할 수 있습니까?
log4j 문서에서 수정 :
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.FileAppender;
public class SimpandFile {
static Logger logger = Logger.getLogger(SimpandFile.class);
public static void main(String args[]) {
// setting up a FileAppender dynamically...
SimpleLayout layout = new SimpleLayout();
FileAppender appender = new FileAppender(layout,"your filename",false);
logger.addAppender(appender);
logger.setLevel((Level) Level.DEBUG);
logger.debug("Here is some DEBUG");
logger.info("Here is some INFO");
logger.warn("Here is some WARN");
logger.error("Here is some ERROR");
logger.fatal("Here is some FATAL");
}
}
log4j.properties 파일에서도이 작업을 수행 할 수 있습니다. 아래 샘플 파일을 사용하여 시스템 속성 $ {logfile.name}을 추가했습니다 .
# logfile is set to be a RollingFileAppender
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${logfile.name}
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%-5p]%d{yyyyMMdd@HH\:mm\:ss,SSS}\:%c - %m%n
로그 파일 이름은 다음 두 가지 방법으로 설정할 수 있습니다.
- 명령 줄로 시스템 속성이 java "-Dlogfile.name = {logfile}"에 전달되었습니다.
Java 프로그램에서 시스템 속성을 직접 설정하여 (log4j를 호출하기 전에).
System.setProperty ( "logfile.name", "일부 경로 / 로그 파일 이름 문자열");
log4j.properties 파일에 정의 된이 속성으로도 수행 할 수 있습니다.
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.maxFileSize=5000KB
log4j.appender.logfile.maxBackupIndex=5
log4j.appender.logfile.File=/WebSphere/AppServer/profiles/Custom01/error.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p [%t] %C %M %c{1}:%L - %m%n
작동과 동일한 테스트를 거쳤습니다.
// setting up a FileAppender dynamically...
SimpleLayout layout = new SimpleLayout();
RollingFileAppender appender = new RollingFileAppender(layout,"file-name_with_location",true);
appender.setMaxFileSize("20MB");
logger.addAppender(appender);
참고 URL : https://stackoverflow.com/questions/1324053/configure-log4j-to-log-to-custom-file-at-runtime
반응형
'code' 카테고리의 다른 글
Jasmine의 toHaveBeenCalledWith 매처를 정규 표현식과 함께 사용할 수 있습니까? (0) | 2020.12.03 |
---|---|
ngSubmit은 Angular 2 형식으로 페이지를 새로 고칩니다. (0) | 2020.12.03 |
제곱근 함수는 어떻게 구현됩니까? (0) | 2020.12.02 |
함수 내에서 클래스를 만들고 포함하는 함수의 범위에 정의 된 함수에 액세스 (0) | 2020.12.02 |
파이썬에서 희소 3D 행렬 / 배열? (0) | 2020.12.02 |