#root Logger ────────────────────────────────────────────────────────────── rootLogger.level = info rootLogger.appenderRef.rolling.ref = YARN_ROLLING # ── RollingFile Appender ────────────────────────────────────────────────────── # spark.yarn.app.container.log.dir 由 YARN 在启动 container 时注入 appender.YARN_ROLLING.type = RollingFile appender.YARN_ROLLING.name = YARN_ROLLING appender.YARN_ROLLING.fileName = ${sys:spark.yarn.app.container.log.dir}/spark.log appender.YARN_ROLLING.filePattern = ${sys:spark.yarn.app.container.log.dir}/spark-%i.log.gz appender.YARN_ROLLING.layout.type = PatternLayout appender.YARN_ROLLING.layout.pattern = %d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n%ex # 触发策略:单文件超过 200MB 就滚动 appender.YARN_ROLLING.policies.type = Policies appender.YARN_ROLLING.policies.size.type = SizeBasedTriggeringPolicy appender.YARN_ROLLING.policies.size.size = 200MB # 滚动策略:最多保留 5 个历史文件(.gz 压缩),超过自动删除最旧的 appender.YARN_ROLLING.strategy.type = DefaultRolloverStrategy appender.YARN_ROLLING.strategy.max = 5 # 过滤掉不必要的 Thrift 噪音(保留原有过滤) appender.YARN_ROLLING.filter.1.type = RegexFilter appender.YARN_ROLLING.filter.1.regex = .*Thrift error occurred during processing of message.* appender.YARN_ROLLING.filter.1.onMatch = deny appender.YARN_ROLLING.filter.1.onMismatch = neutral # ── Third-party 噪音压制(保留原有配置)──────────────────────────────────── logger.jetty1.name = org.sparkproject.jetty logger.jetty1.level = warn logger.jetty2.name = org.sparkproject.jetty.util.component.AbstractLifeCycle logger.jetty2.level = error logger.parquet1.name = org.apache.parquet logger.parquet1.level = error logger.parquet2.name = parquet logger.parquet2.level = error logger.RetryingHMSHandler.name = org.apache.hadoop.hive.metastore.RetryingHMSHandler logger.RetryingHMSHandler.level = fatal logger.FunctionRegistry.name = org.apache.hadoop.hive.ql.exec.FunctionRegistry logger.FunctionRegistry.level = error