在log4j 1.x中 我们可以直接使用FileAppender类的setFile方法
在log4j 2.x中 FileAppender类没有setFile方法。...
我想在log4j2.properties中静态初始化附加程序的文件名,然后在运行时动态更改该附加程序的文件名。
如何实现?
答案 0 :(得分:-1)
您应该添加一个新的FileAppender并停止旧的FileAppender。
看看log4j文档中的"Programmatically Modifying the Current Configuration after Initialization"
答案 1 :(得分:-1)
这是我的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