You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确定Flink应用当前实际使用的日志框架?

判定Flink应用实际使用日志框架的方法

方法1:检查lib目录依赖(零成本快速判定)

进入Flink安装路径的lib目录,直接查看目录内的日志实现jar包即可快速判定:

  • 存在log4j-core-*.jar、log4j-slf4j-impl-*.jar类文件,当前使用的是Log4j框架,官方下载的原生Flink二进制安装包默认预装的就是Log4j
  • 存在logback-classic-*.jar、logback-core-*.jar类文件,当前使用的是Logback框架,一般是手动替换过日志依赖才会出现这种情况

方法2:检查conf目录的日志配置

进入flink/conf目录查看对应日志配置文件做辅助判定:

  • 目录下存在log4j.properties、log4j-cli.properties、log4j-console.properties,且没有被替换为logback对应配置,就是使用Log4j
  • 目录下存在logback.xml、logback-console.xml类配置文件,且对应logback依赖已经放到lib目录,就是使用Logback
    注意:该方法仅作参考,如果存在依赖冲突、类加载优先级问题,可能出现配置和实际加载框架不一致的情况

方法3:运行时代码检测(100%准确)

如果怕静态检查存在误差,可以在作业里加几行检测逻辑,运行时直接获取实际加载的日志实现,不受配置覆盖、依赖冲突影响:

import org.slf4j.LoggerFactory;

public class LogFrameworkCheck {
    public static void main(String[] args) {
        String logImplClass = LoggerFactory.getILoggerFactory().getClass().getName();
        System.out.println("当前加载的日志实现类:" + logImplClass);
        // 输出类名包含log4j即为Log4j框架,包含logback即为Logback框架
    }
}

排查日志不输出的补充提示:确定使用的日志框架后,直接修改conf目录下对应框架的配置文件调整日志级别即可,提交作业时注意不要在作业Jar包内带入冲突的日志实现依赖,避免类加载冲突导致日志完全不打印。

内容的提问来源于stack exchange,提问作者MouseNag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 01:51:56