2017-05-04 3 views
2

log4j를 사용하여 콘솔과 파일에 모두 기록합니다. 그냥 콘솔 작동하지만 파일, 파일이 내 구성 파일입니다log4j가 파일을 기록하지 않습니다.

을 작성되는 생각 :

name=PropertiesConfig 
property.filename = logs 
appenders = console, file 

appender.console.type = Console 
appender.console.name = STDOUT 
appender.console.layout.type = PatternLayout 
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n 

appender.file.type = File 
appender.file.name = LOGFILE 
appender.file.fileName=${filename}/my_server_logs.log 
appender.file.layout.type=PatternLayout 
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n 

loggers=file 
logger.file.name=guru.springframework.blog.log4j2properties 
logger.file.level = debug 
logger.file.appenderRefs = file 
logger.file.appenderRef.file.ref = LOGFILE 

rootLogger.level = debug 
rootLogger.appenderRefs = file, stdout 
rootLogger.appenderRef.stdout.ref = STDOUT 

내가 무엇을하시기 바랍니다 놓친 거지?

답변

2

파일 첨부 프로그램과 루트 로거 간의 연결이 누락되었습니다. 당신의 재산의 맨 아래에 다음 줄을 추가 파일 : 예상대로

rootLogger.appenderRef.file.ref = LOGFILE 

그것은 작동합니다.

+0

네가 맞아! 많은 감사 –

+0

당신은 내 친구를 환영합니다 :) – VivekRatanSinha

0

$ {filename} 변수가 property.filename 값으로 대체 될 것으로 예상됩니다.

$ {filename}을 하드 경로로 대체하고 다시 시도하십시오 (예 : Windows의 경우 'C : \'또는 Unix 계열의 경우 '/ tmp /').

+0

'$ {filename}'은 실제로 'property.filename'으로 대체되며, 질문에서 언급했듯이 파일이 생성되고 있습니다. –

관련 문제