Log4j2 tilpasse filstien med rollingFileAppender (Java)
Jeg migrerer fra log4j 1.x til log4j2 i mit spring boot-program. At være på log4j 1.x plejede jeg at definere egenskaberne som følger:
log4j.appender.A1=package.CustomRollingFileAppender log4j.appender.A1.File=<base.path>/company/logs/main.log
i min CustomRollingFileAppender ville jeg udvide denne klasse med DailyRollingFileAppender og ville tilsidesætte setName()-metoden for at ændre min '
Migrerer til log4j 2.x Jeg har ikke længere klassen DailyRollingFileAppender og kan ikke forlænge RollingFileAppender, fordi den er erklæret som en endelig. Jeg kan heller ikke tilsidesætte funktionen writeToName.
Så hvordan ændrer jeg
Svar
Du rører typisk ikke implementeringskoden for log4j2 klasser. Det, du forsøger at gøre, kan gøres gennem konfiguration.
https://logging.apache.org/log4j/2.x/manual/migration.htmlhttps://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender
Du kan gøre det, du beder om, sådan her
appender.rolling.type = RollingFile appender.rolling.name = RollingFile appender.rolling.fileName = ${BASE_DIR}/application.log appender.rolling.filePattern = ${BASE_DIR}/application.%d{dd-MMM}.log.gz appender.rolling.layout.type = PatternLayout appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %m%n appender.rolling.policies.type = Policies appender.rolling.policies.size.type = SizeBasedTriggeringPolicy appender.rolling.policies.size.size=10MB appender.rolling.strategy.type = DefaultRolloverStrategy appender.rolling.strategy.max = 5 logger.rolling.name = rollingFile logger.rolling.level = debug logger.rolling.additivity = false logger.rolling.appenderRef.rolling.ref = RollingFile
hvor BASE_DIR
er en miljøvariabel