Как динамически установить имя файла FileAppender в log4j версии 2? - PullRequest
0 голосов
/ 03 октября 2018

В log4j 1.x мы можем напрямую использовать метод setFile класса FileAppender

В log4j 2.x Нет метода setFile для класса FileAppender ....

Я хочу статическиинициализируйте имя файла для appender в log4j2.properties, а затем динамически измените имя файла этого appender во время выполнения.

Как этого добиться?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Здесь мой файл log4j2.Новый файл журнала будет создан, когда файл журнала соответствует политикам.И имя файла указывается в appender.rolling.filePattern, система будет каждый день создавать новый файл из-за %d{yyyy-MM-dd} и appender.rolling.policies.time.interval=1.Вы можете добавить больше на %d{yyyy-MM-dd-HH}, и файл журнала будет генерироваться каждый час.

name=PropertiesConfig
property.filename= ./logs
appenders= rolling

appender.rolling.type=RollingFile
appender.rolling.name=RollingFile
appender.rolling.fileName=${filename}/here-are-my-log-propertieslogs.log
appender.rolling.layout.type=PatternLayout
appender.rolling.filePattern=${filename}/feedback-propertieslogs-%d{yyyy-MM-dd}-%i.log
appender.rolling.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1}:%L - %msg%n

# Rotate log file each day and keep 30 days worth
appender.rolling.policies.type=Policies
appender.rolling.policies.time.type=TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval=1
appender.rolling.policies.time.modulate=true
appender.rolling.policies.size.type=SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=5MB
appender.rolling.strategy.type=DefaultRolloverStrategy
appender.rolling.strategy.max=31

appender.rolling.strategy.delete.type=Delete
appender.rolling.strategy.delete.basePath=${filename}
appender.rolling.strategy.delete.maxDepth=1

appender.rolling.strategy.delete.ifLastModified.type=IfLastModified
appender.rolling.strategy.delete.ifLastModified.age=30d

appender.rolling.strategy.delete.ifAccumulatedFileCount.type=IfAccumulatedFileCount
appender.rolling.strategy.delete.ifAccumulatedFileCount.exceeds=30

appender.rolling.strategy.delete.ifAccumulatedFileSize.type=IfAccumulatedFileSize
appender.rolling.strategy.delete.ifAccumulatedFileSize.exceeds=100MB
0 голосов
/ 03 октября 2018

Вы должны добавить новый FileAppender и остановить старый.

Взгляните на «Программное изменение текущей конфигурации после инициализации» в документации log4j

...