2017-05-04 1 views
2

Ich verwende log4j, um sowohl an der Konsole als auch an der Datei zu loggen. Es funktioniert nur mit Konsole, aber nicht mit Datei, dachte die Datei erstellt werden wirdlog4j protokolliert nicht für Datei

Dies ist meine Konfigurationsdatei:

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 

Was bin ich fehlt bitte?

Antwort

2

Die Verbindung zwischen Dateiappender und Root-Logger fehlt. In die folgende Zeile am unteren Rande der Eigenschaftsdatei:

rootLogger.appenderRef.file.ref = LOGFILE 

Es wird erwartet funktionieren.

+0

Yeah du hast Recht! vielen dank –

+0

du bist willkommen mein freund :) – VivekRatanSinha

0

Ich denke, Sie erwarten, dass die Variable $ {filename} durch den Wert von property.filename ersetzt werden.

Sie können versuchen, $ {filename} durch einen harten Pfad zu ersetzen und es erneut zu versuchen (z. B. 'C: \' unter Windows oder '/ tmp /' unter Unix).

+0

die '$ {filename}' wird tatsächlich durch 'property.filename' ersetzt, und, wie ich in der Frage erwähnt habe, wird die Datei erstellt –