Hi Rion

I guess you’re building your own docker image for the deployment right?

For switching to Logback I’m doing the following command (sbt-docker) when 
building the image.

val eclasspath = (Compile / externalDependencyClasspath).value
val logbackClassicJar = eclasspath.files.find(file => 
file.getName.contains("logback-classic"))
logbackClassicJar.foreach(logback => add(logback, «opt/flink/lib»))

Given the error message that you provided I think the dependency is missing in 
the lib folder (don’t confuse this with the usrlib folder).

Kind Regards
Dominik
From: Rion Williams <rionmons...@gmail.com>
Date: Thursday, 22 February 2024 at 13:09
To: Bünzli Dominik, INI-DNA-INF <dominik.buen...@swisscom.com>
Cc: user@flink.apache.org <user@flink.apache.org>
Subject: Re: Using Custom JSON Formatting with Flink Operator
Be aware: This is an external email.

Hi Dominick,

In this case the jobs are running using application-mode. All of these were 
previously working as expected for the legacy jobs using the same configuration 
(however those were running via Ververica Platform and targeting Flink 1.15.2). 
I had somewhat expected similar behaviors but it seems there’s something that 
is missing.

Thanks,

Rion


On Feb 22, 2024, at 1:15 AM, dominik.buen...@swisscom.com wrote:

Good morning Rion,

Are you in session job mode or application mode? I’ve had some similar issues 
(logback) lately and it turned out that I also needed to add the additional 
dependencies (I guess JsonTemplateLayout is one of them) to the lib folder of 
the deployment.

Kind regards
Dominik

From: Rion Williams <rionmons...@gmail.com>
Date: Thursday, 22 February 2024 at 00:46
To: Flink User List <user@flink.apache.org>
Subject: Using Custom JSON Formatting with Flink Operator

Be aware: This is an external email.



Hey Flinkers,

Recently I’ve been in the process of migrating a series of older Flink jobs to 
use the official operator and have run into a snag on the logging front.

I’ve attempted to use the following configuration for the job:

```
logConfiguration:
  log4j-console.properties: |+
    rootLogger.level = INFO
    rootLogger.appenderRef.console.ref = ConsoleAppender
    rootLogger.appenderRef.rolling.ref = RollingFileAppender
    ...
    appender.console.name = ConsoleAppender
    appender.console.type = Console
    appender.console.layout.type = JsonTemplateLayout
    appender.console.layout.eventTemplateUri = classpath:GcpLayout.json
```

However once the job begins running, I’m met with the following errors in the 
logs:

```
ERROR Unable to locate plugin type for JsonTemplateLayout
ERROR Unable to locate plugin for JsonTemplateLayout
ERROR Could not create plugin of type class 
org.apache.logging.log4j.core.appender.ConsoleAppender for element Console: 
java.lang.NullPointerException java.lang.NullPointerException
```

I believe that all of the appropriate references are correct in the actual 
shaded jar itself as I can see things like the JsonTemplateLayout inside of it 
(under org.apache.logging.log4j.template.json.JsonTemplateLayout ) as well as 
the GcpLayout that I’m targeting in the root of the shaded jar as well 
(including trying several adjustments to shade exceptions, adding a log4j 
specific shade transformer, etc.)

I’ve tried adjusting several different knobs/configurations but I’m still 
continually getting this same error. I’d be happy to share any additional 
configuration for the job any/or the FlinkDeployment where applicable.

Just a bit stumped here on something that feels like it should just work.

Reply via email to