Hvorfor skriver Log4j2 ikke logfiler til en fil?
Dette er min konfiguration log4j2.xml
med path to file
– src/com/tarasiuk/task_01/log/dataLogger.log
:
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Properties> <Property name="FORMAT_MESSAGE"> %d{YYYY-MM-dd HH:mm:ss} [%t] Level:%-7p Class:%c{1}:%-5L - %msg%n </Property> <Property name="LOG_FILE"> src/com/tarasiuk/task_01/log/dataLogger.log </Property> </Properties> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="${FORMAT_MESSAGE}" /> </Console> <File name="File" fileName="${LOG_FILE}" append="false"> <PatternLayout pattern="${FORMAT_MESSAGE}" /> </File> </Appenders> <Loggers> <Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false"> <AppenderRef ref="File" /> </Logger> <Root level="info"> <AppenderRef ref="Console" /> </Root> </Loggers> </Configuration>
Struktur af mit projekt:
Hvad jeg gør:
- ændre
path
for at logge fil frasrc/com/tarasiuk/task_01/log/dataLogger.log
tilcom/tarasiuk/task_01/log/dataLogger.log
– intet resultat. - ændre
level
i<Logger>
fradebug
tilinfo
– intet resultat.
Logfiler udsendes til konsollen – det er ok. Men hvorfor Log4j2
skriver ikke logfiler to a file
?
Svar
Prøv med nedenstående bilag.
Det kan være, at det i dit tilfælde ikke er i stand til at hente stien fra ejendom, så jeg havde kun angivet navn. Så automatisk vil den oprette en fil på samme sti som din ansøgning.
<Appenders> <File name="dataLogger" fileName="dataLogger.log" append="false"> <PatternLayout pattern="%level - %m%n"/> </File> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%level - %m%n"/> </Console> </Appenders>
Dette vil hjælpe dig.