나는 그것에 대해 질문을 본 적이 있지만, 그 중 아무도 나를 도왔습니다. log4j를 사용하고 있지만 콘솔에서 제대로 작동하므로 선언 된 파일에 아무 것도 쓰지 않습니다. 게다가 파일이 생성되었지만 아무것도 저장되지 않았습니다. 코드 :log4j - 로그 파일에 기록되지 않았습니다.
#default
log4j.rootLogger=ERROR,console
#Console Appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%5p] [%t %d{hh:mm:ss}] (%F:%M:%L) %m%n
#Custom assignments
log4j.logger.controller=DEBUG,console
log4j.logger.service=DEBUG,console
log4j.logger.dao=DEBUG,console
#Disable additivity
log4j.additivity.controller=false
log4j.additivity.service=false
log4j.additivity.dao=false
#MyLogger
log4j.logger.classPath.myClass = INFO, CACHE
log4j.appender.CACHE=org.apache.log4j.RollingFileAppender
log4j.appender.CACHE.File = ./logs/cache.log
log4j.appender.CACHE.bufferedIO = false
log4j.appender.CACHE.ImmediateFlush=true
log4j.appender.CACHE.Threshold=info
log4j.appender.CACHE.layout=org.apache.log4j.PatternLayout
log4j.appender.CACHE.layout.ConversionPattern=[%5p] [%t %d{hh:mm:ss}] (%F:%M:%L) %m%n
내가 예상대로 때 additivity=false
, 로그가 콘솔에서 보여되지 않기 때문에 로거가 제대로 정의되어 있는지 확인 해요. log4j.logger.myClass = INFO, CACHE, console
이 추가되면 콘솔에 로그가 다시 표시됩니다. 그래서 로거 선언은 괜찮아 보입니다. 그렇다면 왜 로그 파일에 표시되지 않습니까?
로거를 사용하려면 org.apache.log4j.Logger.getLogger(myClass.class).info('msg')
구문을 사용하고 있습니다. org.apache.log4j.Logger.getLogger("classPath.myClass").info('msg')
도 작동하지 않습니다.
log4j.rootLogger=INFO,console,CACHE
을 시도하면 아무 것도 파일에 표시되지 않습니다.
log4j.rootLogger = INFO 콘솔로 변경해보십시오. – Keerthivasan
작동하지 않습니다. 그리고이 출처에 따르면 : http://www.goldenline.pl/ramka/aHR0cDovL2xvZ2dpbmcuYXBhY2hlLm9yZy9sb2c0ai8xLjIvbWFudWFsLmh0bWw= 내 로거의 레벨이 정의 되었기 때문에 상관 없습니다. – Filu
레벨이 MyClass에 대해 정의되었으므로 레벨은 부모로부터 상속받지 않습니다. – Keerthivasan