programing

log4j를 콘솔에 쓰는 방법

nasanasas 2020. 12. 8. 08:16
반응형

log4j를 콘솔에 쓰는 방법


log4j에게 로그를 파일과 콘솔에 쓰도록 지시하는 방법이 있습니까? 감사합니다 내 속성이 있습니다 :

log4j.rootLogger=DEBUG,console,R
log4j.rootLogger=INFO, FILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=log4j.log
log4j.appender.FILE.MaxFileSize=512KB
log4j.appender.FILE.MaxBackupIndex=3
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

루트 로거 정의가 약간 혼란 스럽습니다. log4j 문서를 참조하십시오 .

이것은 표준 Java 특성 파일이며, 이는 행이 키 = 값 쌍으로 처리됨을 의미합니다. 두 번째 log4j.rootLogger줄은 첫 번째 줄을 덮어 쓰는 console것이므로 어 펜더에 아무것도 표시되지 않는 이유를 설명합니다 .

rootLogger정의를 하나로 병합해야합니다 . DEBUG메시지는 콘솔로, INFO메시지는 파일 로 보내 려고하는 것 같습니다 . 루트 로거는 하나의 레벨 만 가질 수 있으므로 어 펜더가 적절한 레벨을 갖도록 구성을 변경해야합니다.

이것이 올바른지 확인하지는 않았지만 다음과 같이 보일 것입니다.

log4j.rootLogger=DEBUG,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender

대 / 소문자에도 오류가 있습니다. 한 곳에는 콘솔 소문자가 있고 다른 곳에는 CAPS가 있습니다.


log4j 파일은 아래의 주석을 읽어야합니다.

# Define the types of logger and level of logging    
log4j.rootLogger = DEBUG,console, FILE

# Define the File appender    
log4j.appender.FILE=org.apache.log4j.FileAppender    

# Define Console Appender    
log4j.appender.console=org.apache.log4j.ConsoleAppender    

# Define the layout for console appender. If you do not 
# define it, you will get an error    
log4j.appender.console.layout=org.apache.log4j.PatternLayout

# Set the name of the file    
log4j.appender.FILE.File=log.out

# Set the immediate flush to true (default)    
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode    
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite    
log4j.appender.FILE.Append=false

# Define the layout for file appender    
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout    
log4j.appender.FILE.layout.conversionPattern=%m%n

이것은 디버그 모드의 콘솔에서 잘 작동합니다.

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

콘솔과 FILE 모두에 로깅하기 위해 아래와 같이 루트 로거를 작성하십시오.

log4j.rootLogger = 오류, 콘솔, 파일

그리고 Target, Layout 및 ConversionPattern (파일의 경우 MaxFileSize 등)과 같은 각 정의를 작성합니다.

참고 URL : https://stackoverflow.com/questions/3382985/how-to-make-log4j-to-write-to-the-console-as-well

반응형