如何在log4j2.properties中限制Elasticsearch日志总大小?
实现按文件大小轮转且限制总磁盘占用5GB的Log4j2配置方案
最简配置思路
核心是给日志Appender配置SizeBasedTriggeringPolicy(按文件大小触发轮转),同时通过DefaultRolloverStrategy的max属性控制归档文件数量,结合单文件大小计算总占用,确保不超过5GB。
举个实用的例子:如果设置单日志文件最大为1GB,那么保留4个归档文件+当前活跃文件,总占用刚好是5GB(1GB×5),配置起来最直观。
需保留/修改的关键配置项
基于Elasticsearch默认配置,你只需要保留基础日志级别、Appender的核心结构,重点修改以下几部分:
- 根日志的级别和Appender关联配置
- RollingFile类型Appender的文件名、归档路径规则
- 大小触发策略(SizeBasedTriggeringPolicy)
- 轮转策略(DefaultRolloverStrategy,设置max值)
最终完整配置文件
# 根日志配置 rootLogger.level = info rootLogger.appenderRef.rolling.ref = rolling # 主日志RollingFile Appender appender.rolling.type = RollingFile appender.rolling.name = rolling appender.rolling.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log appender.rolling.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}-%i.log.gz appender.rolling.layout.type = PatternLayout appender.rolling.layout.pattern = [%d{ISO8601}] [%t] [%p] [%c{1.}] %marker%m%n # 按1GB大小触发轮转 appender.rolling.policies.type = Policies appender.rolling.policies.size.type = SizeBasedTriggeringPolicy appender.rolling.policies.size.size = 1GB # 保留4个归档文件+当前文件,总占用约5GB appender.rolling.strategy.type = DefaultRolloverStrategy appender.rolling.strategy.max = 4 # 可选:保留ES专属日志的轮转配置(如弃用日志、审计日志,按需保留) logger.deprecation.name = org.elasticsearch.deprecation logger.deprecation.level = warn logger.deprecation.appenderRef.deprecation.ref = deprecation logger.deprecation.additivity = false appender.deprecation.type = RollingFile appender.deprecation.name = deprecation appender.deprecation.fileName = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_deprecation.log appender.deprecation.filePattern = ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}_deprecation-%i.log.gz appender.deprecation.layout.type = PatternLayout appender.deprecation.layout.pattern = [%d{ISO8601}] [%t] [%p] [%c{1.}] %marker%m%n appender.deprecation.policies.type = Policies appender.deprecation.policies.size.type = SizeBasedTriggeringPolicy appender.deprecation.policies.size.size = 1GB appender.deprecation.strategy.type = DefaultRolloverStrategy appender.deprecation.strategy.max = 4
配置说明
- 若想调整单文件大小,比如改成500MB,只需把
size设为500MB,同时将max改为9(500MB×10=5GB)即可 filePattern中的%i会自动生成归档文件的序号(如xxx-1.log.gz、xxx-2.log.gz),轮转时自动递增- 所有路径变量(
${sys:es.logs.base_path}等)沿用ES默认的系统变量,无需额外修改
内容的提问来源于stack exchange,提问作者LewTrocki
相关产品推荐
相关产品推荐

