如何通过log4j2配置实现WSO2 EI 6.6.0自动删除14天前日志
WSO2 EI 6.6.0 Log4j2 14天日志自动清理配置方案
以下配置可直接实现无论日志文件大小,仅保留最近14天Carbon日志、自动删除过期日志、不生成多余数字后缀备份文件的需求:
1. 前置准备
配置文件路径为 <EI_HOME>/conf/log4j2.properties,修改前请备份原配置文件,避免配置异常导致日志输出故障。
2. 替换CARBON_LOGFILE Appender配置
找到配置文件中原appender.CARBON_LOGFILE相关配置段,整体替换为如下内容:
appender.CARBON_LOGFILE.type = RollingFile appender.CARBON_LOGFILE.name = CARBON_LOGFILE appender.CARBON_LOGFILE.fileName = ${sys:carbon.home}/repository/logs/wso2carbon.log appender.CARBON_LOGFILE.filePattern = ${sys:carbon.home}/repository/logs/wso2carbon-%d{yyyy-MM-dd}.log appender.CARBON_LOGFILE.layout.type = PatternLayout appender.CARBON_LOGFILE.layout.pattern = TID: [%tenantId] [%appName] [%d] %5p {%c} - %m%ex%n appender.CARBON_LOGFILE.policies.type = Policies # 仅启用按天滚动策略 appender.CARBON_LOGFILE.policies.time.type = TimeBasedTriggeringPolicy appender.CARBON_LOGFILE.policies.time.interval = 1 appender.CARBON_LOGFILE.policies.time.modulate = true # 注释/删除基于大小的滚动策略,避免生成wso2carbon.log.1这类数字后缀备份 # appender.CARBON_LOGFILE.policies.size.type = SizeBasedTriggeringPolicy # appender.CARBON_LOGFILE.policies.size.size=10MB appender.CARBON_LOGFILE.strategy.type = DefaultRolloverStrategy # 配置14天日志自动删除规则 appender.CARBON_LOGFILE.strategy.delete.type = Delete appender.CARBON_LOGFILE.strategy.delete.basePath = ${sys:carbon.home}/repository/logs/ appender.CARBON_LOGFILE.strategy.delete.maxDepth = 1 appender.CARBON_LOGFILE.strategy.delete.ifLastModified.type = IfLastModified appender.CARBON_LOGFILE.strategy.delete.ifLastModified.age = 14d
3. 其他日志适配(可选)
如果需要对wso2error.log、audit.log等其余日志也应用14天清理规则,参照上述逻辑修改对应appender的policies和strategy配置段即可,仅需调整fileName和filePattern匹配对应日志文件名。
4. 生效验证
- 重启WSO2 EI服务加载新配置
- 可临时将
IfLastModified.age调整为1m(1分钟),触发日志滚动后验证自动删除规则是否生效,确认无误后改回14d即可。
常见失效原因排查
- 若仍生成数字后缀备份文件,检查是否未完全注释/删除
SizeBasedTriggeringPolicy相关配置 - 若日志未删除,检查
DefaultRolloverStrategy是否配置了小于14的max参数,同时确认WSO2 EI进程对repository/logs目录有读写删除权限 - 检查
filePattern的日期格式是否和IfLastModified规则匹配,确保时间计算逻辑正确
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

