将Flink 1.10升级到Flink 1.11(kubernetes部署上的Log4j)

将Flink 1.10升级到Flink 1.11(kubernetes部署上的Log4j),kubernetes,configuration,apache-flink,Kubernetes,Configuration,Apache Flink,将Flink 1.10升级到Flink 1.11后,log4j配置不再工作 我以前的配置是使用带有适配器的库,该适配器需要log4j1.x,并且不再与flink1.11兼容 根据新的配置,flink-conf.yaml应该如下所示 log4j-console.properties: |+ # This affects logging for both user code and Flink rootLogger.level = INFO rootLogger.append

将Flink 1.10升级到Flink 1.11后,log4j配置不再工作

我以前的配置是使用带有适配器的库,该适配器需要log4j1.x,并且不再与flink1.11兼容

根据新的配置,flink-conf.yaml应该如下所示

log4j-console.properties: |+
    # This affects logging for both user code and Flink
    rootLogger.level = INFO
    rootLogger.appenderRef.console.ref = ConsoleAppender
    rootLogger.appenderRef.rolling.ref = RollingFileAppender

    # Uncomment this if you want to _only_ change Flink's logging
    #logger.flink.name = org.apache.flink
    #logger.flink.level = INFO
我当前使用log4j1的配置与此类似

log4j-console.properties: |+
         log4j.rootLogger=INFO,myappender,console
         log4j.appender.myappender=com.company.log4j.MyAppender
         log4j.appender.myappender.endpoints=http://

有没有办法告诉Flink 1.11在Flink-conf.yaml文件中使用log4j1?

据我所知,
Flink-conf.yaml
不包含
log4j console.properties
部分,这是一个单独的文件。我想您指定的是
flink配置configmap.yaml
集群资源定义的一部分

根据flink的说法,要使用log4j1,您需要:

  • 从lib目录中删除
    log4j-core
    log4j-slf4j-impl
    log4j-1.2-api
    jar
  • log4j
    slf4j-log4j12
    log4j-to-slf4j
    jar添加到lib目录

将Flink-1.10.2升级到Flink-1.11.3后,我在
Kubernetes
DCOS(Mesos)
Flink集群中遇到了相同的问题。然后为了交叉验证,我在本地下载了Flink的二进制文件Flink-1.11.3-bin-scala_2.12.tgz,并测试了记录器,发现它工作正常,没有任何变化

Flink 1.11从Log4j1切换到Log4j2

  • 然后,我按照中提到的步骤将Flink与Log4j1一起使用

  • 从Flink的lib目录中删除
    log4j-slf4j-impl
    log4j-1.2-api
    jar
  • log4j
    slf4j-log4j12
    log4j-to-slf4j
    jar添加到
    Flink的lib
    目录中
  • 重新启动
    Kubernetes
    DCOS(Mesos)
    Flink集群,验证记录器并发现其工作正常


表示“Flink附带Log4j API桥,允许针对Log4j1类工作的现有应用程序继续工作。”也许您不必返回Log4j1。My Kubernetes配置遵循此配置,使用docker提供的docker映像。是的,我明白了。然而,查看dockerfile,它基于flink-1.11.1-bin-scala_2.11.tgz,其中包括lib文件夹中的log4j核心、log4j-slf4j-impl和log4j-1.2-api jars。因此,要使log4j1在部署中正常工作,您需要根据上述要求更改flink docker映像-删除一些lib并替换为其他lib。